Eri*_*ark 5 c# wpf xaml datagrid
我有一个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>
Run Code Online (Sandbox Code Playgroud)
用户控制xaml:
<DataGrid ... AlternatingRowBackground="Gray" RowStyle="{StaticResource RowStyleWithAlternation}" ... />
Run Code Online (Sandbox Code Playgroud)
如果您按如下方式更改 UserControl.xaml,它就会起作用:
<DataGrid RowStyle="{StaticResource RowStyleWithAlternation}" AlternationCount="2" />
Run Code Online (Sandbox Code Playgroud)
背景是通过行上的 AlternationIndex 触发器设置的,该触发器的优先级不高于 IsMouseOver。
我在这篇文章中找到了答案:
DataGridRow 背景颜色的 WPF 样式触发器被 AlternatingRowBackground 画笔取代
| 归档时间: |
|
| 查看次数: |
1587 次 |
| 最近记录: |