1

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

在此处输入图像描述

4

1 回答 1

4

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

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

http://leecampbell.blogspot.com/2009/01/horizo​​ntal-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看到你在鼠标悬停时获得了高亮颜色。显然,您需要调整颜色等等,但这就是您需要做的 - 修改 的ControlTemplateTreeViewItem使其占据整个宽度并添加一个Triggerfor IsMouseOver

于 2012-05-03T15:06:41.393 回答