如果 WPF Richtextbox Highlight 单词包含连字符,单词中显示细线?
If WPF Richtextbox Highlight word contains hyphen,thin line shown in the word?
我在 WPF 中工作 RichTextBox.I 已突出显示每个单词,使用下面的 code.its 作品 fine.But 单词包含连字符表示,突出显示的单词在连字符之间有一些细线.
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;
}
注意:我添加了图片以便更好地理解。
你的 window 设置 TextOptions.TextFormattingMode
是在 Ideal
上吗?如果是这样,请尝试设置 Display
.
我在 WPF 中工作 RichTextBox.I 已突出显示每个单词,使用下面的 code.its 作品 fine.But 单词包含连字符表示,突出显示的单词在连字符之间有一些细线.
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;
}
注意:我添加了图片以便更好地理解。
你的 window 设置 TextOptions.TextFormattingMode
是在 Ideal
上吗?如果是这样,请尝试设置 Display
.