У меня есть DataGrid
, который использует AlternatingRowBackground
, чтобы сделать его более удобным для чтения. В той же сетке у меня также есть изменение цвета фона для строк на основе "IsMouseOver"
Setter Property
в моем App.xaml
файле. Проблема, с которой я столкнулась, состоит в том, что строки, которые имеют чередующийся цвет (они не белые), не меняются на цвет "IsMouseOver"
, когда мышь нависает над ним. В основном цвет AlternatingRowBackground
имеет приоритет над моим RowStyle
. Как сделать так, чтобы цветные строки менялись, когда мышь нависала над ними?DataGrid - AlternatingRowBackground цвет, мешающий цвету «IsMouseOver»
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 = «Серый») имеет приоритет над триггером. См. Ссылку, упомянутую @Bruno для более продолжительного обсуждения. –