在WPF TextBlock中突出显示文本
本文关键字:显示 文本 WPF TextBlock | 更新日期: 2023-09-27 18:14:20
我试图在WPF TextBlock中突出显示或设置一些选定文本的背景。假设我有两个文本文件,我加载到内存中,完成diff,然后想要在WPF应用程序中显示。想象一下,循环遍历每一行,然后在文本块中添加文本,并根据删除、插入或相等的文本更改颜色。
for (int i = 0; i < theDiffs.Count; i++)
{
switch (theDiffs[i].operation)
{
case Operation.DELETE:
// set color to red on Source control version TextBlock
break;
case Operation.INSERT:
WorkspaceVersion.AppendText(theDiffs[i].text);
// set the background color (or highlight) of appended text to green
break;
case Operation.EQUAL:
WorkspaceVersion.AppendText(theDiffs[i].text);
// Set the background color (highlight) of appended text to yellow
break;
default:
throw new ArgumentOutOfRangeException();
}
}
您需要将Run
内联元素附加到TextBlock Inlines
。例如(假设"WorkspaceVersion"是一个TextBlock):
case Operation.INSERT:
// set the background color (or highlight) of appended text to green
string text = theDiffs[i].text;
Brush background = Brushes.Green;
var run = new Run { Text = text, Background = background };
WorkspaceVersion.Inlines.Add(run);
break;