-1

所以我试图创建一个有很多不同格式的表格。我目前正在努力解决的问题是如何通过在 XAML 中编码来调整 WPF 中 Datagrid 中列标题的颜色。我发现的只是格式化所有列标题的方法。有没有办法分别格式化每一个?

我的代码目前如下所示:

    <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>

此代码创建一个包含三列的简单表格,并将标题着色为深灰色和白色前景文本。我希望将其中一个标题设为浅灰色。谢谢!乔恩

4

1 回答 1

1

将 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>
于 2016-03-18T14:09:21.950 回答