C# 选择单元格/行时更改单元格/行文本颜色-DataGrid WPF

C# 选择单元格/行时更改单元格/行文本颜色-DataGrid WPF,c#,wpf,colors,cell,wpfdatagrid,C#,Wpf,Colors,Cell,Wpfdatagrid,当选择DataGrid行时,以及当它处于非活动选择模式时(它已被选中,现在用户单击另一个控件,即textbox),我如何使行中的文本保持颜色(例如白色) 我尝试了以下方法(设置单元格样式): 我在App.Xaml中说: <Style x:Key="DataGridCentering" TargetType="{x:Type DataGridCell}"> <Setter Property="Template"> <Setter.Val

当选择DataGrid行时,以及当它处于非活动选择模式时(它已被选中,现在用户单击另一个控件,即textbox),我如何使行中的文本保持颜色(例如白色)

我尝试了以下方法(设置单元格样式):


我在App.Xaml中说:

<Style x:Key="DataGridCentering" TargetType="{x:Type DataGridCell}">
     <Setter Property="Template">
         <Setter.Value>
             <ControlTemplate TargetType="{x:Type DataGridCell}">
                 <Grid Background="{TemplateBinding Background}">
                     <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"  />
                 </Grid>
              </ControlTemplate>
         </Setter.Value>
     </Setter>
     <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
     <Style.Triggers>
         <Trigger Property="IsSelected" Value="True">
             <Setter Property="Foreground" Value="White"/>
         </Trigger>
      </Style.Triggers>
</Style>

可能会注意到,我尝试使用触发器,即当选择单元格时,将单元格内的文本涂成白色等, 但这显然不起作用

选定单元格/行时,DataGrid中的我的文本仍为黑色。

尝试此样式

<DataGrid.Resources>
    <Style TargetType="{x:Type DataGridCell}">
        <Style.Triggers>
            <Trigger Property="IsSelected"
                     Value="True">
                <Setter Property="Foreground"
                        Value="Red" />
            </Trigger>
        </Style.Triggers>
    </Style>
</DataGrid.Resources>

尝试将以下笔刷资源添加到
数据网格

<DataGrid>
    <DataGrid.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="White"/>
        <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="White"/>
    </DataGrid.Resources>
    ...
</DataGrid>

...

应该可以在Windows7上运行。在Windows 8及更高版本上,您必须覆盖的
DataGridRow

的控件模板可能重复,而不是现在就覆盖它,以防它将在其他操作系统上使用。。。我真的很想知道为什么触发器在这里不起作用,我想它们必须100%起作用!
<DataGrid>
    <DataGrid.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="White"/>
        <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="White"/>
    </DataGrid.Resources>
    ...
</DataGrid>