WPF中DataGrid选中行,在焦点失去后,颜色会很淡,很不明细,因此在失去焦点的情况下,如何设置与选中的时候颜色一样。

<DataGrid.Resources>
    <Style TargetType="DataGridCell">
       <Style.Resources>
          <SolidColorBrush  x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}"  Color="#0078D7"/>
       </Style.Resources>                          
   </Style>
</DataGrid.Resources>

这里需要注意的是 TargetType="DataGridCell",这里的类型需要选择每一行的属性,“DataGridRow”似乎也是可以的;

 然后我们会发现选择行的颜色字体颜色由黑变白,但是失去焦点后颜色又恢复了黑色,会有一阵变化。那要怎么处理呢?

 <Style.Triggers>
    <Trigger Property="IsSelected" Value="True">
        <Setter Property="Foreground" Value="White"/>
    </Trigger>
 </Style.Triggers>

这样就OK了 ,整体代码如下

<DataGrid.Resources>
   <Style TargetType="DataGridCell">
      <Style.Resources>
         <SolidColorBrush  x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}"  Color="#0078D7"/>
      </Style.Resources>
      <Style.Triggers>
         <Trigger Property="IsSelected" Value="True">
            <Setter Property="Foreground" Value="White"/>
         </Trigger>
      </Style.Triggers>
  </Style>
</DataGrid.Resources>