如何使Stringbuilder内容的一部分变为粗体?

时间:2011-11-03 22:25:28

标签: 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 

我想把“名字”变成粗体。有可能吗?

3 个答案:

答案 0 :(得分:7)

ChrisT提供了RichTextBox作为解决方案,但鲜为人知的是简单的字体变化可通过简单的TextBlock: -

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

答案 1 :(得分:2)

StringBuilder仅包含字符数据,而不包含格式。基本上你不能。除非您实际生成html或rtf等。

与notepad.exe没有粗体/斜体/等的方式相同。

我不是WP7专家,但也许你可以在这里使用不同的控件,更多的是针对格式化文本。

答案 2 :(得分:2)

您需要将文字放入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);