当选择单元格/行时更改单元格/行的文本颜色 - DataGrid WPF
如何在我的行中保留文本,例如当DataGrid行被选中时为白色,以及当它处于非活动选择模式时(它被选中现在用户点击另一个控件即文本框)。当选择单元格/行时更改单元格/行的文本颜色 - DataGrid WPF
我试着用这个(设置单元格样式):
<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中的文本仍然是黑色的..
尝试以下刷资源添加到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
的控制模板。
比它可能会更好地覆盖它现在的情况下,如果它将用于其他操作系统的......我真的想知道如何触发器不起作用,我想他们必须工作100%! –
他们工作;)看看我的答案。 –
尝试这种风格
<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>
[设置选中行时WPF DataGrid行的文本颜色]的可能重复(http://*.com/questions/4104646/setting-the-text-colour-of-a-wpf-datagrid- row-when-row-is-selected) – AlSki