Как выделить часть содержимого Stringbuilder жирным шрифтом?

StringBuilder sb = new StringBuilder();
sb.Append(
        string.Format("{0} |{1} ", Name, Value)
        );
Display.Text = sb.ToString();  // Display is a WP7 TextBlock control 

Я хочу сделать «Имя» жирным шрифтом. Возможно ли это сделать?


person Sri    schedule 03.11.2011    source источник
comment
StringBuilder просто помогает вам построить строку. Он не обеспечивает никакого форматирования, если только элемент управления TextBlock не принимает специальные символы форматирования (я не знаком с программированием пользовательского интерфейса WP7).   -  person Eric J.    schedule 04.11.2011


Ответы (3)


Вам нужно будет поместить текст в ссылку RichTextBox и иметь имя в виде отдельного Run в Paragraph, как в этом примере из MSDN:

// Create a Run of plain text and some bold text.
Run myRun1 = new Run();
myRun1.Text = "A RichTextBox with ";
Bold myBold = new Bold();
myBold.Inlines.Add("initial content ");
Run myRun2 = new Run();
myRun2.Text = "in it.";

// Create a paragraph and add the Run and Bold to it.
Paragraph myParagraph = new Paragraph();
myParagraph.Inlines.Add(myRun1);
myParagraph.Inlines.Add(myBold);
myParagraph.Inlines.Add(myRun2);

// Add the paragraph to the RichTextBox.
MyRTB.Blocks.Add(myParagraph);
person ChrisF    schedule 03.11.2011
comment
@HenkHolterman Согласно странице MSDN, это поддерживается — есть значок телефона напротив методов и т. д., а в информации о версии указано Silverlight для Windows Phone. Поддерживается в: ОС Windows Phone 7.1. - person ChrisF; 04.11.2011
comment
@ChrisF: RTB немного тяжеловат для основного требования. - person AnthonyWJones; 04.11.2011
comment
Спасибо за ответ. Я попробую это! - person Sri; 04.11.2011

ChrisF предлагает RichTextBox в качестве решения, но менее известно, что простая вариация шрифта достижима с помощью простого TextBlock:-

myTextBlock.Inlines.Add(new Run() { Text = "Hello " });
myTextBlock.Inlines.Add(new Run() { Text = "World", FontWeight= FontWeights.Bold });
person AnthonyWJones    schedule 03.11.2011
comment
Я забыл об этом. Это даже в моем ответе! - person ChrisF; 04.11.2011
comment
Спасибо за ответ. Я попробую с Textblock ! - person Sri; 04.11.2011

StringBuilder содержит только символьные данные, а не форматирование. Вы не можете, в принципе. Если вы на самом деле не генерируете html или rtf и т.д.

Точно так же, как notepad.exe не имеет жирного шрифта/курсива/и т. д.

Я не эксперт по WP7, но, возможно, здесь можно использовать другой элемент управления, более ориентированный на форматированный текст.

person Marc Gravell    schedule 03.11.2011