internal string Select(RichTextBox rtb, int index, int length)
{
TextRange textRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
if (textRange.Text.Length >= (index + length))
{
TextPointer start = textRange.Start.GetPositionAtOffset(index, LogicalDirection.Forward);
TextPointer end = textRange.Start.GetPositionAtOffset(index + length, LogicalDirection.Backward);
rtb.Selection.Select(start, end);
rtb.Selection.ApplyPropertyValue(TextElement.BackgroundProperty, new SolidColorBrush(Colors.LightBlue));
}
return rtb.Selection.Text;
}
每当调用 ApplyPropertyValue 来更改所选文本的背景颜色时,它在第一次时效果很好,但在第二次调用时它不能正确调整所选文本段的背景颜色。我怀疑这与调用函数后文档的偏移量以某种方式被搞砸有关。
什么是解决这个问题的好方法?