我在WPF RichTextBox中工作。我使用下面的代码突出显示每个单词。它工作正常。但是这个单词包含连字符意思,突出显示的单词在连字符之间有一些细线。
string SelectHighlightWord(RichTextBox rtb, int offset, int length)
{
TextRange fullRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
fullRange.ClearAllProperties();
TextPointer startSelect = fullRange.Start.GetPositionAtOffset(offset);
TextPointer endSelect = startSelect.GetPositionAtOffset(length);
TextRange textRange = rtb.Selection;
textRange.Select(startSelect, endSelect);
textRange.ApplyPropertyValue(TextElement.BackgroundProperty, new SolidColorBrush(m_backgroundColor));
textRange.ApplyPropertyValue(TextElement.ForegroundProperty, new SolidColorBrush(m_foregroundColor));
FrameworkContentElement fce = (startSelect.Parent as FrameworkContentElement);
if (fce != null)
{
fce.BringIntoView();
}
return rtb.Selection.Text;
}
注意:我添加了图片以便更好地理解。
答案 0 :(得分:1)
您的窗口设置为TextOptions.TextFormattingMode
Ideal
吗?如果是,请尝试设置Display
。