在WPF TreeView中将其悬停在TreeViewItem上时更改背景颜色

时间:2017-06-19 15:09:59

标签: c# wpf xaml treeview

如何将TreeViewItem悬停在其上时更改背景颜色?

在阅读了几篇文章/问题后,包括这篇文章WPF TreeView Highlight Row On Hover,我认为采取的相应措施是为我的TreeView创建一个样式模板:

<Style x:Key="TreeViewItemStyle1" TargetType="{x:Type TreeViewItem}">
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="Green" />
        </Trigger>
    </Style.Triggers>
</Style>

然后将其分配给我的TreeView:

    <TreeView ItemsSource="{Binding Folders}"
              ItemContainerStyle="{DynamicResource TreeViewItemStyle1}"/>

但这似乎不起作用。它会改变颜色,因为我将鼠标悬停在它上面,但它会突出显示,使我的TreeView看起来完全搞砸了:

Messed up TreeView

当IsMouseOver为false时,我尝试重置颜色:

<Trigger Property="IsMouseOver" Value="False">
    <Setter Property="Background" Value="White" />
</Trigger>

但它仍然会突出显示多个节点,并且当我一次移动它们时只会重置它们。

有什么想法吗?

感谢。

0 个答案:

没有答案