如何在RichTextBox中更改部分文本颜色

时间:2015-02-19 10:43:19

标签: c# wpf colors textbox richtextbox

美好的一天!

我尝试将部分文字更改为红色。

所以,我尝试使用TextBox,但它不起作用。 所以,我读到,RichTextBox可以做到这一点:i use this question

但我不知道如何追加彩色文字?

  TextRange rangeOfText1 = new TextRange(tbScriptCode.Document.ContentEnd,    tbScriptCode.Document.ContentEnd);
 rangeOfText1.Text = "Text1 ";
rangeOfText1.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Blue);
                             rangeOfText1.ApplyPropertyValue(TextElement.FontWeightProperty, FontWeights.Bold);

好的,我得到了TextRange,但是如何将它附加到RichTextBox?

你能告诉我如何将文本的某些部分变成红色吗? 谢谢!

1 个答案:

答案 0 :(得分:4)

从您的示例开始:

TextRange rangeOfText2 = new TextRange(tbScriptCode.Document.ContentEnd,
    tbScriptCode.Document.ContentEnd);

rangeOfText2.Text = "RED !";

rangeOfText2.ApplyPropertyValue(TextElement.ForegroundProperty,Brushes.Red);
rangeOfText2.ApplyPropertyValue(TextElement.FontWeightProperty, FontWeights.Bold);

适合我。

  
    

好的,我得到了TextRange,但是如何将它附加到RichTextBox?

  

已添加

new TextRange(tbScriptCode.Document.ContentEnd, tbScriptCode.Document.ContentEnd);

你也能做什么(我最近自己用过):

var fd = new FlowDocument();

Paragraph paragraph = new Paragraph();

paragraph.Inlines.Add(new Run("normal text and this is in "));
paragraph.Inlines.Add(new Run("red") { Foreground = Brushes.Red });
paragraph.Inlines.Add(new Run(" and this is blue.") { Foreground = Brushes.Blue });

fd.Blocks.Add(paragraph);

tbScriptCode.Document = fd;