如何独立制作WPF Datagrid行前景和备用行前景色?

时间:2012-12-13 08:27:51

标签: c# wpf datagrid wpfdatagrid

我有WPF DataGrid,因为我可以独立设置DataGrid RowBackground颜色,替代RowBackground颜色。同样,我想独立设置DataGrid RowForeground颜色,替代RowForeground颜色。

如何以简单和最佳的方式实现这一目标?

我动态绑定DataGrid,XAML静态资源在这里不会帮助我。

2 个答案:

答案 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>