0

我正在设计一个使用虚拟化 ListView 控件来显示代码行的代码查看器。

现在我想在用户单击将他们带到特定行的链接时创建突出显示效果。我希望突出显示目标行。

效果将是出现(和消失)的“下划线”或出现(和消失)的半透明覆盖(如记号笔)。实际的图形效果本身并不重要,这不是问题。

实现这一目标的最佳方法是什么?我不太确定从哪里开始。

一些技术要求可能是我需要:

  • 找到正确的事件来响应 - 或使用数据绑定
  • 获得虚拟化目标项目的绝对边界矩形(尽管当进入视图时项目应该可用)
  • 绝对将画布效果放在顶部,淡入淡出

...理想情况下,视图模型中的一些状态更改,一段 XAML 通过触发的故事板动画显示(淡入)相关 ListViewItem 上方,然后再次动画消失(淡出)。当然,在淡入之前,元素必须已经正确定位在相关的 ListViewItem...

4

1 回答 1

1

我研究了一个 Listview 的搜索功能,其中每个 ListViewItem 都有几个文本框。当用户在搜索文本框中输入内容时,列表视图中的所有匹配项都应该突出显示。

我根据搜索字符串创建了 Run 对象(使用 Regex 查找匹配项),然后将 Background 设置为某种颜色。此外,在 Run 对象的标记中保存了 ListViewItem 的引用,这有助于我使用调用 ScrollIntoView。希望这对您的情况有所帮助。

于 2013-02-20T06:55:33.853 回答