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>
用户控制xaml:
<DataGrid ... AlternatingRowBackground="Gray" RowStyle="{StaticResource RowStyleWithAlternation}" ... />
如果您按如下方式更改 UserControl.xaml,它就会起作用:
<DataGrid RowStyle="{StaticResource RowStyleWithAlternation}" AlternationCount="2" />
背景是通过行上的 AlternationIndex 触发器设置的,该触发器的优先级不高于 IsMouseOver。
我在这篇文章中找到了答案:
DataGridRow 背景颜色的 WPF 样式触发器被 AlternatingRowBackground 画笔取代