DataGrid - 交替行背景色干扰了“IsMouseOver”颜色

5
我有一个使用DataGrid的网格,使用AlternatingRowBackground使其更易于阅读。在同一网格中,我还根据App.xaml文件中的"IsMouseOver"Setter Property为行更改背景颜色。我的问题是那些具有交替颜色(它们不是白色)的行在鼠标悬停时不会改变为"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}" ... />

直接设置属性(AlternatingRowBackground="Gray")优先于触发器。请参见@Bruno提供的链接以获取更详细的讨论。 - Walt Ritscher
1个回答

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接