如何格式化 WPF 数据网格 XAML 中的每个列 header

How to format each individual column header in a WPF Datagrid XAML

所以我正在尝试创建一个具有多种不同格式的 table。我目前正在努力解决的问题是如何通过在 XAML 中编码来调整 WPF 中 Datagrid 中列 header 的颜色。我所发现的只是格式化所有列 header 的方法。有什么办法可以分别格式化吗?

我的代码目前是这样的:

    <DataGrid x:Name="CellStyleGrid" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="309,50,0,0" IsReadOnly="False" IsEnabled="True" CanUserAddRows="True" Width="172" RenderTransformOrigin="0.501,0.477" SelectionUnit="Cell" Grid.ColumnSpan="2" AlternatingRowBackground="#C2C2C2" AlternationCount="2" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Path=col1}" ClipboardContentBinding="{x:Null}" Header="Col1" CanUserResize="True"/>
            <DataGridTextColumn Binding="{Binding Path=col2}" ClipboardContentBinding="{x:Null}" Header="Col2" CanUserResize="True"/>
            <DataGridTextColumn Binding="{Binding Path=col3}" ClipboardContentBinding="{x:Null}" Header="Col3" CanUserResize="True"/>
        </DataGrid.Columns>
        <DataGrid.ColumnHeaderStyle>
            <Style TargetType="{x:Type DataGridColumnHeader}">
                <Setter Property="Background" Value="#3B3B3B"/>
                <Setter Property="Foreground" Value="White"/>
            </Style>
        </DataGrid.ColumnHeaderStyle>
    </DataGrid>

此代码创建了一个简单的 table,其中包含三列,header 的颜色为深灰色,前景文本为白色。我希望将其中一个 header 变成浅灰色。 谢谢! 乔恩

将 AutoGenerateColumns 设置为 false,然后在每个列定义中指定 DataGridXColumn.HeaderStyle。这是一个粗略的例子:

<DataGrid AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{SomeBinding}">
            <DataGridTextColumn.HeaderStyle>
                    <Style>
                        <Setter Property="InkCanvas.Background"
                                Value="Blue" />
                    </Style>
                    </DataGridTextColumn.HeaderStyle>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>