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

#c# #windows-phone-7 #stringbuilder

#c# #windows-phone-7 #stringbuilder

Вопрос:

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

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

Комментарии:

1. StringBuilder просто помогает вам создавать строку. Он не обеспечивает никакого форматирования, если только элемент управления TextBlock не принимает специальные символы форматирования (я не знаком с программированием пользовательского интерфейса WP7).

Ответ №1:

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

 myTextBlock.Inlines.Add(new Run() { Text = "Hello " });
myTextBlock.Inlines.Add(new Run() { Text = "World", FontWeight= FontWeights.Bold });
  

Комментарии:

1. Я забыл об этом. Это даже в моем ответе!

2. Спасибо за ответ. Я попробую с текстовым блоком!

Ответ №2:

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

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

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

Ответ №3:

Вам нужно будет поместить текст в a RichTextBox и указать имя как отдельное Run в Paragraph as в этом примере из 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);
  

Комментарии:

1. @HenkHolterman Согласно странице MSDN, она поддерживается — напротив методов и т. Д. Есть значок телефона, А в информации о версии указано » Silverlight для Windows Phone Поддерживается в: Windows Phone OS 7.1″

2. @ChrisF: RTB немного тяжеловат для основного требования.