Изменить цвет в RichTextBox - PullRequest
       10

Изменить цвет в RichTextBox

0 голосов
/ 06 ноября 2018

Я использую этот простой пример из 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;

Я хочу применить выбранный цвет к строкам текста, но как это сделать?

Классы Paragraph или Run не имеют прямого метода для изменения цвета.

EDIT

Я не хочу использовать все вещи типа awkard SelectionStart, SelectionEnd, опубликованные в связанном сообщении!.

У меня другой случай, и он намного проще: решение, опубликованное в mm8 , объясняет это и очень элегантно. Одна строка кода и это!

Пожалуйста, смотрите ответ!

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Классы Paragraph или Run не имеют прямого метода для изменения цвета.

Класс 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 });
0 голосов
/ 06 ноября 2018

Вы можете получить / установить цвет текста через свойство Foreground поля расширенного текста. Как показано ниже, я изменил цвет текста расширенного текстового поля на синий:

myRichTextBox.Foreground = Brushes.Blue;

Удачного кодирования!

...