如何在WinUI/UWP的CommunityToolkit DataGrid中设置选中行前景色?
修改WinUI DataGrid选中行前景色的方法
WinUI的DataGrid确实没有直接暴露设置选中行前景色的属性,不过可以通过两种方式实现需求:
方法一:重写全局系统资源
WinUI的DataGrid选中行的前景色默认由系统资源DataGridSelectedForegroundBrush控制,你可以在App.xaml或者页面的资源字典里重新定义这个资源,就能全局或局部修改所有DataGrid的选中行前景色:
<!-- 在App.xaml的<Application.Resources>中添加 --> <SolidColorBrush x:Key="DataGridSelectedForegroundBrush" Color="White" />
如果只想针对某个页面的DataGrid生效,把这段代码放到该页面的<Page.Resources>里即可。
方法二:自定义DataGridRow样式
如果需要更精细的控制(比如只给特定DataGrid设置),可以重写DataGridRow的ControlTemplate,在选中状态的视觉状态里指定前景色:
<controls:DataGrid xmlns:controls="using:Microsoft.UI.Xaml.Controls"> <controls:DataGrid.Resources> <Style TargetType="controls:DataGridRow"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="controls:DataGridRow"> <Border x:Name="RowBorder" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="SelectionStates"> <VisualState x:Name="Unselected" /> <VisualState x:Name="Selected"> <VisualState.Setters> <!-- 这里设置你想要的选中行前景色 --> <Setter Target="ContentPresenter.Foreground" Value="White" /> <Setter Target="RowBorder.Background" Value="{ThemeResource DataGridSelectedBackgroundBrush}" /> </VisualState.Setters> </VisualState> <VisualState x:Name="SelectedUnfocused"> <VisualState.Setters> <Setter Target="ContentPresenter.Foreground" Value="White" /> <Setter Target="RowBorder.Background" Value="{ThemeResource DataGridSelectedUnfocusedBackgroundBrush}" /> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <ContentPresenter x:Name="ContentPresenter" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" Foreground="{TemplateBinding Foreground}" /> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style> </controls:DataGrid.Resources> <!-- 这里添加你的DataGrid列定义 --> </controls:DataGrid>
这种方式可以单独给某个DataGrid定制选中行样式,同时保留其他默认的视觉行为。
内容的提问来源于stack exchange,提问作者Ragavan
相关产品推荐
相关产品推荐

