WPF TreeView 悬停时突出显示行

标签 wpf treeview styles hover highlight

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

enter image description here

最佳答案

您需要将 TreeViewItemControlTemplate 更改为实际控件的整个宽度。

此处有关于此问题的讨论以及解决方案:

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 添加一个触发器

关于WPF TreeView 悬停时突出显示行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10433534/

相关文章:

wpf - WPF 中 TextBox.Text 属性的奇怪情况

c# - 检查 TreeView 是否有变化?

大型静态网站的 JavaScript TreeView

wpf - 在 Generic.xaml 中找不到命名样式

java - 如何使用 Java 将 xml 样式表包含到 XML 文件中

jquery,使用组件宽度确定对象位置

wpf - 边框背景上的 Style.DataTrigger

wpf - WPF 中的切换按钮

wpf - 与Winforms相比,WPF Windows是否渲染速度较慢?

插入带有标签的行时,Tkinter Treeview 出现问题