我有一个WPF DataGrid,它有一个AlternatingRowBackground画笔.它被配置为每隔一行着色.我想在鼠标上做一些突出当前行的事情.但是,样式触发器似乎输给了AlternatingRowBackground画笔.我在鼠标上获得了所需的行颜色...但仅限于未使用AlternatingRowBackground画笔绘制的行.
这是Windows中的Style.Resources:
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Skins/MainSkin.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="IsMouseOver"
Value="True">
<Setter Property="Background"
Value="Red" />
<Setter Property="FontWeight"
Value="ExtraBold" />
<Setter Property="Height"
Value="20" />
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
这是DataGrid:
<DataGrid Margin="25,15,25,0"
VerticalAlignment="Top"
ItemsSource="{Binding DocumentTypeList}"
AutoGenerateColumns="False"
Height="500"
AlternationCount="2"
FrozenColumnCount="2"
AlternatingRowBackground="{DynamicResource AlternatingRow}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Abbreviation}"
Header="Abbreviation" />
<DataGridTextColumn Binding="{Binding Title}"
Header="Title" />
<DataGridTextColumn Binding="{Binding Fee}"
Header="Fee" />
<DataGridTextColumn Binding="{Binding SpecialInstructions}"
Header="Special Instructions" />
</DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
有没有办法宣布绝对赢家?这个问题是一个层次结构吗?在我看来,AlternatingRowBackground画笔胜出,因为它直接与声明的最具体部分相关联.
更新: 根据@ Val的指导,这是正确的语法:
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Skins/MainSkin.xaml" /> …Run Code Online (Sandbox Code Playgroud)