我想在 WPF ItemsControl 中显示搜索结果,并突出显示查询词。
我使用的搜索引擎,Lucene.Net使用 Highlighter 插件,返回带有如下标记的查询词的字符串:
...these <Bold>results</Bold> were found to be statistically significant...
我可以指示 Highlighter 插件使用任何一组标记标签来包装查询词。我不限于
<Bold>
上面示例中的标记。对于 WPF,我可能会制作这些 <Run/>
附加样式的元素。挑战在于获取给我的字符串并将其呈现为好像它是我用于搜索结果的数据模板中的“实际 XAML”。换句话说,我想看到这样的东西:
...these results were were found to be statistically significant...
但我正在努力解决如何将数据绑定(bind)与数据模板中 XAML 字符串的动态呈现相结合。这里最好的方法是什么?
XamlReader.Load()
从代码隐藏? 最佳答案
一个 TextBlock
可以包含多个 Run
s 在其 Inlines
收藏。您可以在代码或 XAML 中构建它:
<TextBlock>
<Run>... these </Run>
<Run FontWeight="Bold">results</Run>
<Run> were found...</Run>
</TextBlock>
关于wpf - 如何使用突出显示的查询词在 WPF 项目控件中显示搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3728584/