我有DataGrid
使用AlternatingRowBackground
让自己更容易阅读。在同一网格中,我还根据"IsMouseOver"
文件中的Setter Property
App.xaml
对行进行了背景颜色更改。我遇到的问题是,当鼠标悬停在它上面时,具有交替颜色(它们不是白色)的行不会更改为"IsMouseOver"
颜色。基本上AlternatingRowBackground
颜色优先于我的RowStyle
。当鼠标悬停在彩色行上时,如何使彩色行也发生变化?
的App.xaml:
<!-- DataGrid Row Style -->
<Style x:Key="RowStyleWithAlternation" TargetType="DataGridRow">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Background" Value="GhostWhite"/>
<Setter Property="FontWeight" Value="Normal"/>
<Setter Property="ContextMenu" Value="{x:Null}"/>
<Style.Triggers>
<Trigger Property="AlternationIndex" Value="1">
<Setter Property="Background" Value="#FFD0D0E0"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Purple"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#F9F99F" />
</Trigger>
</Style.Triggers>
</Style>
用户控制xaml:
<DataGrid ... AlternatingRowBackground="Gray" RowStyle="{StaticResource RowStyleWithAlternation}" ... />
答案 0 :(得分:2)
如果您按如下方式更改UserControl.xaml,则此方法有效:
<DataGrid RowStyle="{StaticResource RowStyleWithAlternation}" AlternationCount="2" />
通过行上的AlternationIndex触发器设置背景,该触发器不优先于IsMouseOver。
我在这篇文章中找到了答案:
WPF Style Trigger for DataGridRow Background Color Trumped by AlternatingRowBackground Brush