我有WPF
DataGrid
,因为我可以独立设置DataGrid
RowBackground
颜色,替代RowBackground
颜色。同样,我想独立设置DataGrid
RowForeground
颜色,替代RowForeground
颜色。
如何以简单和最佳的方式实现这一目标?
我动态绑定DataGrid,XAML静态资源在这里不会帮助我。
答案 0 :(得分:5)
你可以像这样使用AlternationIndex道具:
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
答案 1 :(得分:0)
您可以设置一个样式触发器,它将根据背景颜色更改行的前景色。
示例,默认情况下,行的前景色为蓝色,但如果背景色为白色,则其前景色为红色。见下文。
<DataGrid ...>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="TextElement.Foreground" Value="Blue"/>
<Style.Triggers>
<Trigger Property="TextElement.Background" Value="White">
<Setter Property="TextElement.Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
...
</DataGrid>