我正在创建一个 WinUI3 项目并使用来自
的 DatagridCommunityToolkit.WinUI.UI.Controls.DataGrid
我无法使用 Setter 更改 DataGridColumnHeader,而 Foreground 更改得很好。我的代码:
<controls:DataGrid.ColumnHeaderStyle>
<Style TargetType="primitives:DataGridColumnHeader">
<Setter Property="FontSize" Value="10"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="Background" Value="Green"/> //This doesnt work
<Setter Property="Foreground" Value="Red"/> //This works
</Style>
</controls:DataGrid.ColumnHeaderStyle>
输出
无论我做什么,标题背景仍然是白色的。我应该如何更改列标题背景颜色?
编辑
我在 Github 上看到了一个关于它的问题,但我不明白如何实现它!
https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/3393
您需要覆盖这 3 种颜色:
<Page.Resources>
<Color x:Key="GreenishColor">#FF60B560</Color>
<Color x:Key="YellowishColor">#FFFFF700</Color>
<Color x:Key="BlueishColor">#FF00e5ff</Color>
<StaticResource x:Key="DataGridColumnHeaderBackgroundColor" ResourceKey="GreenishColor"/>
<StaticResource x:Key="DataGridColumnHeaderHoveredBackgroundColor" ResourceKey="YellowishColor"/>
<StaticResource x:Key="DataGridColumnHeaderPressedBackgroundColor" ResourceKey="BlueishColor"/>
</Page.Resources>
您也可以在您的
DataGrid
内执行此操作,如下所示:
<controls:DataGrid>
<controls:DataGrid.Resources>
<Color x:Key="GreenishColor">#FF60B560</Color>
<Color x:Key="YellowishColor">#FFFFF700</Color>
<Color x:Key="BlueishColor">#FF00e5ff</Color>
<StaticResource x:Key="DataGridColumnHeaderBackgroundColor" ResourceKey="GreenishColor"/>
<StaticResource x:Key="DataGridColumnHeaderHoveredBackgroundColor" ResourceKey="YellowishColor"/>
<StaticResource x:Key="DataGridColumnHeaderPressedBackgroundColor" ResourceKey="BlueishColor"/>
</controls:DataGrid.Resources>
</controls:DataGrid>