当选择DataGrid Row时,以及当它处于非活动选择模式时(如果它被选中并且现在用户点击另一个控件即文本框),我怎么能将我的行中的文本保持为彩色,例如白色。
我试过这个(设置单元格样式):
<DataGrid.CellStyle>
<StaticResource ResourceKey="DataGridCentering"/>
</DataGrid.CellStyle>
我在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中的文本仍为黑色..
答案 0 :(得分:1)
试试这个风格
<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>
答案 1 :(得分:1)
尝试将以下画笔资源添加到DataGrid
:
<DataGrid>
<DataGrid.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="White"/>
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="White"/>
</DataGrid.Resources>
...
</DataGrid>
应该适用于Windows 7.在Windows 8及更高版本中,您必须覆盖DataGridRow
的控件模板。