我试图使用以下代码覆盖ListViewItem样式:
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource MaterialDesignListViewItem}">
<EventSetter Event="PreviewMouseLeftButtonDown"
Handler="ListViewItem_PreviewMouseLeftButtonDown" />
</Style>
</ListView.ItemContainerStyle>
遗憾的是MaterialDesignListViewItem
似乎没有MaterialDesignInXaml
,因此我找不到StaticResource
下划线。
我的目标是在鼠标悬停在某个项目上时更改选择的颜色。
感谢您的关注。
答案 0 :(得分:1)
所以这里有一些事情发生。
在MDIX中,有两种用于ListView的样式。分组的样式MaterialDesignGridViewItem
和普通MaterialDesignListBoxItem
。要覆盖其中任何一种样式,您需要手动引入相应的资源字典(分别为MaterialDesignTheme.ListView.xaml
和MaterialDesignTheme.ListBox.xaml
)。
我认为你正在寻找这样的东西:
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem" BasedOn="{StaticResource MaterialDesignListBoxItem}">
<Style.Resources>
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ListBox.xaml" />
</Style.Resources>
<EventSetter Event="PreviewMouseLeftButtonDown"
Handler="ListViewItem_PreviewMouseLeftButtonDown" />
</Style>
</ListView.ItemContainerStyle>