基于编号的文本块中的WPF内联编辑

时间:2015-10-23 10:48:31

标签: c# wpf xaml inline textblock

我想突出显示文本块中的一些行。这些行是动态决定的。我该怎么做? 例如 - 我想突出显示包含文件标签的所有行,我该怎么做?

Content of textblock

2 个答案:

答案 0 :(得分:1)

以下内容适用于您:

foreach(System.Windows.Documents.Run run in textBlock.Inlines.OfType<System.Windows.Documents.Run>())
{
    if (run.Text.Contains("<files ") || run.Text.Contains("</files>"))
    {
        run.Background = Brushes.Yellow;
    }
}

如果您需要更多灵活性,也可以使用正则表达式来进行匹配而不是文本比较。

答案 1 :(得分:0)

您可以使用Textblock内联来执行突出显示,例如

 TextBlock tb = new TextBlock();
                    tb.TextWrapping = TextWrapping.Wrap;
                    tb.Margin = new Thickness(10);
                    tb.Inlines.Add("<xml...> ");
                    tb.Inlines.Add(new Run("<Configuration ") 
                                       { 
                                         FontWeight = FontWeights.Bold,
                                         Foreground = Brushes.Blue });

                    tb.Inlines.Add(new Run( new LineBreak())....