【问题标题】:WPF TreeView Highlight Row On HoverWPF TreeView 悬停时突出显示行
【发布时间】:2012-05-13 02:17:11
【问题描述】:

目前,将鼠标悬停在 TreeView 中的标题上会突出显示标题。我想将鼠标悬停在 TreeView 中行的任何部分以突出显示整行(就像 Windows 资源管理器一样)。有人可以提供一个如何做到这一点的例子吗?

【问题讨论】:

标签: wpf treeview styles hover highlight


【解决方案1】:

您需要将ControlTemplate 更改为TreeViewItem 实际上是控件的整个宽度。

这里有关于这个问题的讨论以及解决方案:

http://leecampbell.blogspot.com/2009/01/horizontal-stretch-on-treeviewitems.html

这里还有一个冗长的答案,没有讨论:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b04f73e2-0b10-4d97-a6da-64df2e30c21d/

所以我的意思是将这些示例作为指南。如果您采用与上面第二个链接(来自 MSDN 论坛)中完全相同的代码并添加以下代码:

<Trigger Property="IsMouseOver" Value="True">
    <Setter Property="Background" TargetName="Bd"
            Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
</Trigger>

ControlTemplate,您会看到鼠标悬停时获得高亮颜色。显然你需要调整颜色等等,但这就是你需要做的——修改TreeViewItemControlTemplate 使其占据整个宽度并为IsMouseOver 添加Trigger .

【讨论】:

  • 该示例只是使标题更大,并且仅在选择时突出显示标题。我想要整个行的突出显示(包括之前的展开按钮和空白区域),并且我希望突出显示发生在悬停而不是选择上。
  • 我更新了答案以提供更多信息。它并不完全符合您的要求(您需要对其进行调整),但它应该能让您继续前进。
  • lee campbell 链接和所有讨论只是将高光一直向右拉伸,并没有向左拉伸。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
  • 1970-01-01
  • 2018-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多