你可以试试这个方法。这不好,但它的工作。
Brush MyBrush = new SolidColorBrush(Colors.Black);
private void Button_Click(object sender, RoutedEventArgs e)
{
MyBrush = new SolidColorBrush(Colors.Red);
MyRichTextBox.Focus();
}
private void MyRichTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
var textBox = (RichTextBox)sender;
var docStart = textBox.Document.ContentStart.DocumentStart;
foreach (var change in e.Changes)
{
var changeStart = docStart.GetPositionAtOffset(change.Offset, LogicalDirection.Forward);
var changeEnd = docStart.GetPositionAtOffset(change.Offset + change.AddedLength, LogicalDirection.Forward);
var changedRange = new TextRange(changeStart, changeEnd);
changedRange.ApplyPropertyValue(TextElement.ForegroundProperty, MyBrush);
}
}