Я искал какое-то время для этого решения, так что теперь я размещаю здесь.WPF RichTextBox изменить цвет шрифта inline
Прямо сейчас я могу изменить цвет переднего плана всего RichTextBox
:
yourRichTextBox.Foreground = Brushes.Red;
Я также в состоянии изменить цвет какой-то текст, который пользователь выбрал с их курсором:
if(!yourRichTextBox.Selection.IsEmpty){
yourRichTextBox.Selection.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Red);
}
Но я хочу, чтобы иметь возможность изменять цвет следующего текста, который пользователь вводит.
У меня есть панель выбора цвета, которая возвращает цвет, в котором пользователь хочет, чтобы текст находился. Таким образом, пользователь вводит текст RichTextBox
в обычном черном шрифте, затем они нажимают кнопку выбора цвета, выбирают цвет, попадают ОК, а затем следующее, что они напечатают, будет в этом цвете. Есть ли способ сделать это, или мне не повезло?
Единственный способ, которым я могу это сделать, это иметь буфер, который захватывает каждый символ, который пользователь вводит, а затем задавать свойство переднего плана на каждой введенной букве, а затем добавлять его обратно в RichTextBox
, идеи?
Решение найдено здесь будет работать Я думаю (не тестировал): http://stackoverflow.com/questions/1926264/color-different-parts-of-a-richtextbox-string?answertab=active#tab -top Функция AppendText перегружена и может быть вызвана с дополнительным цветовым свойством –