我怎么能重写这个DataGrid样式属性在MaterialDesignThemes?



我在XAML中使用材料设计,我有一个DataGrid,当选择一行并且鼠标离开该行时,该行的背景更改为白色,如果鼠标返回它将更改回原始颜色。我想我已经找到了设置它的代码部分,但我似乎无法覆盖它……这是在"MaterialDesignDataGridCell"风格和我似乎这集。

<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True"/>
<Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="False" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="{DynamicResource MaterialDesignSelection}" />
</MultiDataTrigger>

我试着复制这个触发器并设置一个不同的值,当鼠标悬停为false时设置一个触发器来设置背景,并尝试设置这些没有运气:

<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Black" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Black" />
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Black"/>
</Style.Resources>

不太确定你想要实现什么,但如果你想覆盖你的数据网格单元格的单元格样式,你可以这样做

<DataGrid>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell" BasedOn="{StaticResource MaterialDesignDataGridCell}">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True"/>
<Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="False" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="Red" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
</DataGrid>

最新更新