首页 > 解决方案 > 使用 MahApps WPF 在 ListView 中更改悬停颜色

问题描述

我的 WPF 应用程序嵌入了 MahApps Metro 库以获得更漂亮的外观。

困扰我的是当我将鼠标悬停在它的边框上时 ListViewItem 颜色。所以我想改变它。我发现的唯一解决方案是这样的:

<ListView.Resources>
<Style TargetType="TextBlock">
  <Style.Triggers>
    <DataTrigger Binding="{Binding IsSelected, RelativeSourcValue="True">
      <Setter Property="Foreground" Value="White" />
    </Trigger>
  </Style.Triggers>
    </Style>
  </ListView.Resources>
  <ListView.ItemContainerStyle>
  <Style TargetType="ListViewItem" x:Key="ContainerStyle">
  <Style.Triggers>
    <Trigger Property="IsSelected" Value="True">
      <Setter Property="Background" Value="Red" />
    </Trigger>
  </Style.Triggers>
</Style>
</ListView.ItemContainerStyle>

但这对我不起作用,有趣的是-“borderthichness”实际上覆盖了,但不是颜色。我对 WPF 也很陌生,所以我不知道应该做什么才能改变悬停在边框颜色上?如果有人有想法,请指导我。

标签: c#wpfmahapps.metro

解决方案


MahApps 对控件进行了重新模板化,因此一些正常的技巧不起作用。您必须修改模板以获得所需的样式更改。

模板可以在这里找到:

https://github.com/MahApps/MahApps.Metro/blob/develop/src/MahApps.Metro/Styles/Controls.ListView.xaml


推荐阅读