ListView项突出显示

时间:2013-02-19 21:54:45

标签: wpf xaml listview virtualization listviewitem

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

现在,我想在用户点击将其带到特定行的链接时创建高亮效果。我希望突出显示目标行。

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

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

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

  • 找到要对其做出反应的正确事件 - 或使用数据绑定
  • 获取虚拟化目标项的绝对边界矩形(虽然当进入视图时该项应该可用)
  • 绝对将画布效果置于顶部,淡入和淡出

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

1 个答案:

答案 0 :(得分:1)

我参与了Listview的搜索功能,其中每个ListViewItem都有很少的文本块。当用户在搜索文本框中键入内容时,列表视图中的所有匹配都应突出显示。

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