wpf - 使用多种类型的控件搜索并突出显示 WPF 窗口上的任何文本

标签 wpf search text full-text-search wpf-controls

这基本上是在 WPF 窗口或用户控件中实现搜索/查找。
假设您有一个带有动态只读文本的 WPF 窗口,一些在文本块上,一些在列表框中,一些在树 View 中,一些在文本块中等。

用户应该能够在顶部的文本框中键入搜索词,并能够在文本出现在窗口中的任何控件中的任何位置和控件中看到它突出显示。不,此页面与 FlowDocuments 等无关,因此不能使用开箱即用的 FlowDocumentReader。

将其称为“控制文本搜索”并突出显示搜索词,就像 Google chrome 浏览器对网页所做的那样。

以下 SO 线程可能会有所帮助,但不确定我是否可以实现上述目标(我正在尝试将一些东西放在一起)

  • Find all controls in WPF Window by type
  • WPF Listbox highlight part of ListBoxItem element

  • 有这篇文章,这也很有帮助,但适用于文档而不是控件
  • Search and highlight any text on WPF rendered page
  • 最佳答案

    好吧,我似乎找到了一个看起来像我想要的链接。

    Search and Highlight Text in an Arbitrary Visual Tree

    我将经历这个,如果它是上述问题的完整解决方案,我会回来更新

    更新 1 :好的,这真的有效,上面的链接有实际解决这个问题的代码,Kent 干得好!!! - 它一次用黄色突出显示所有搜索文本,但缺少的一件事是导航突出显示,例如下一个->下一个。我正计划在这方面工作,然后我可以在这里发布我的更新,以便它可以帮助其他人。

    更新 2:好吧,这个解决方案还有另一个问题。突出显示的矩形绘制在屏幕坐标上。因此,如果您有很长的项目列表,并且您滚动,突出显示的矩形仍然会粘在屏幕上,而不是文本块本身。

    所以现在我和我的队友将研究不同的解决方案。将保持此线程发布。

    关于wpf - 使用多种类型的控件搜索并突出显示 WPF 窗口上的任何文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1197415/

    相关文章:

    c# - WPF 扩展器未扩展

    apache-flex - Flex 开发的网页内容可以搜索到吗?

    python - 索引错误 : list index out of range in array search

    algorithm - 如何设计近似路径解?

    swift - 在打印时显示的 TextView 中可选

    c# - 从测试单元显示 WPF 窗口

    wpf - 使用 ICommand 的按钮不会被禁用?

    HTML 辅助功能错误 - 标签文本为空?

    R:检查文档术语矩阵导致错误:当前不允许重复索引

    c# - 将单元格内容复制到剪贴板 RadGridView WPF