我遇到了RichTextBox
的另一个问题。如果您的文字范围如下:
var range = new TextRange(TextInput.Document.ContentStart,
TextInput.Document.ContentEnd);
range.Text = "asdfghjk";
var colored = new TextRange(TextInput.Document.ContentStart.GetPositionAtOffset(3, LogicalDirection.Forward),
TextInput.Document.ContentStart.GetPositionAtOffset(7, LogicalDirection.Forward));
colored.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Blue);
在你的改变听众中,你有类似的东西:
var range = new TextRange(TextInput.Document.ContentStart, TextInput.Document.ContentEnd);
if (range.Text.Length == 9)
range.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Black);
当使用退格键删除其中一个蓝色字符时(我认为删除键工作正常),并且您开始立即键入显示的文本为蓝色,就像格式化之前一样。我很感兴趣为什么会发生这种情况以及避免它的方法。