0

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

我怎样才能以简单和最佳的方式实现这一目标?

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

4

2 回答 2

6

您可以像这样使用 AlternationIndex 道具:

   <Style TargetType="{x:Type DataGridRow}">
  <Style.Triggers>
      <Trigger Property="ItemsControl.AlternationIndex" Value="0">
          <Setter Property="Foreground" Value="Red" />
     </Trigger>
  </Style.Triggers>
</Style>
于 2012-12-13T10:18:05.893 回答
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>
于 2012-12-13T09:30:12.370 回答