C# 选择单元格/行时更改单元格/行文本颜色-DataGrid WPF
当选择DataGrid行时,以及当它处于非活动选择模式时(它已被选中,现在用户单击另一个控件,即textbox),我如何使行中的文本保持颜色(例如白色) 我尝试了以下方法(设置单元格样式):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
我在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>