首页 > 解决方案 > 自动突出显示 TextBox 或 RichTextBox 中的部分文本

问题描述

是否可以突出显示文本的一部分而不选择文本的这一部分,最好在文本框或富文本框中使用不同的颜色?事实上,我的意思是,文本的一部分被另一种颜色突出显示,该颜色不同于为文本选择指定的颜色。为了澄清,我附上了一张显示这种行为的图片。(图片来自网站,而不是 WPF)。粗体和深绿色部分是刚刚突出显示的文本,灰色区域是选定部分。 在此处输入图像描述

标签: c#wpftextbox

解决方案


使用 RichTextBox 元素可以提供更多样式选项,据我所知,这些选项不适用于常规 TextBox 元素。

这是我创建的一种方法:

// Generate example content
FlowDocument doc = new FlowDocument();

Run runStart = new Run("This is an example of ");
Run runHighlight = new Run("text highlighting in WPF");
Run runEnd = new Run(" using the RichTextBox element.");

// Apply highlight style
runHighlight.FontWeight = FontWeights.Bold;
runHighlight.Background = Brushes.LightGreen;

// Create paragraph
Paragraph paragraph = new Paragraph();
paragraph.Inlines.Add(runStart);
paragraph.Inlines.Add(runHighlight);
paragraph.Inlines.Add(runEnd);

// Add the paragraph to the FlowDocument
doc.Blocks.Add(paragraph);

// Apply to RichTextBox
YourRichTextBoxHere.Document = doc;

查看截图


推荐阅读