在RichTextBox中更改颜色

时间:2018-11-06 09:23:59

标签: c# wpf richtextbox

我正在使用MSDN中的这个简单示例 在RichTextBox中插入行。

FlowDocument myFlowDoc = new FlowDocument();

Run myRun = new Run("This is flow content and you can ");
Bold myBold = new Bold(new Run("edit me!"));

Paragraph myParagraph = new Paragraph();
myParagraph.Inlines.Add(myRun);
myParagraph.Inlines.Add(myBold);

myFlowDoc.Blocks.Add(myParagraph);

RichTextBox myRichTextBox = new RichTextBox();
myRichTextBox.Document = myFlowDoc;

我想将选定的颜色应用于文本行,但是该怎么做?

ParagraphRun类没有任何直接更改颜色的方法。

编辑

我不想使用链接帖子上发布的所有SelectionStartSelectionEnd笨拙的东西!。

我的案例与众不同,并且更为简单:从 mm8 发布的解决方案对此进行了说明,并且非常优雅。 一行代码就可以了!

请查看答案!

2 个答案:

答案 0 :(得分:6)

  

ParagraphRun类没有任何直接更改颜色的方法。

Run类继承自TextElement,并且该类具有Foreground属性,您可以将其设置为Brush

Run myRun = new Run("This is flow content and you can ") { Foreground = Brushes.Red };
Bold myBold = new Bold(new Run("edit me!") { Foreground = Brushes.Gray });

答案 1 :(得分:2)

您可以通过富文本框的Foreground属性获取/设置文本颜色。作为下面的示例,我将富文本框的文本颜色更改为蓝色:

myRichTextBox.Foreground = Brushes.Blue;

编码愉快!