如何在 UWP CommunityToolkit DataGrid 上设置列标题的样式

Mar*_*ark 5 c# uwp-xaml windows-community-toolkit

我目前正在查看 UWP CommunityToolkit DataGrid。我已经阅读了文档,但我没有发现他们清楚如何应用 ColumnHeaderStyle。我不确定我应该在列标题中定位什么来设置我的样式。我想改变背景和前景色。我还希望这些属性应用于整个标题,而不仅仅是单个列。

 <controls:DataGrid.ColumnHeaderStyle>
       <Style TargetType="">
             <Setter Property="" Value=""/>
       </Style>                                       
 </controls:DataGrid.ColumnHeaderStyle>
Run Code Online (Sandbox Code Playgroud)

小智 5

这让我困惑了一段时间,但我最终发现您需要添加另一个 XML 命名空间声明以定位列标题。

<Application
    x:Class="MyApp"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
    xmlns:controlsprimitives="using:Microsoft.Toolkit.Uwp.UI.Controls.Primitives">
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,我只是附加:

xmlns:controlsprimitives="using:Microsoft.Toolkit.Uwp.UI.Controls.Primitives"

然后你可以用这个目标创建一个样式:

<Style x:Key="ColumnHeaderStyle" TargetType="controlsprimitives:DataGridColumnHeader">
    <!-- style properties -->
</Style>
Run Code Online (Sandbox Code Playgroud)

(然而,在撰写本文时,出于某种原因,这样做似乎存在奇怪的样式行为。)


Dis*_*ant 0

您可以在 App.xaml 中重写DataGridColumnHeaderBackgroundBrushand ,如下所示:DataGridColumnHeaderForegroundBrush

<SolidColorBrush x:Key="DataGridColumnHeaderBackgroundBrush" Color="#FFCB2128" />
<SolidColorBrush x:Key="DataGridColumnHeaderForegroundBrush" Color="#FFB03060" />
Run Code Online (Sandbox Code Playgroud)