UWP Community Toolkit DataGrid控件:如何将单元格内容正确对齐

时间:2018-09-26 14:37:23

标签: datagrid uwp-xaml windows-community-toolkit

我在DataGrid中有一个数字列,我希望其内容右对齐。我有read the docs,主要是Customizable templates and styling for cells, rows and headers,在这里我得到了以下代码来完成右对齐单元格内容:

<controls:DataGrid.CellStyle>
    <Style TargetType="controls:DataGridCell">
        <Style.Setters>
            <Setter Property="HorizontalAlignment" Value="Right"/>
        </Style.Setters>
    </Style>
</controls:DataGrid.CellStyle>

不出所料,此代码确实可以实现我想要的功能,但具有所有单元格。我只希望数字列具有此属性,也只有它,但是我无法做到这一点。

我在做什么错了?

2 个答案:

答案 0 :(得分:0)

  

我只希望数字列具有此属性,并且只有它

根据您的要求,您可以将单元格样式赋予特定的DataGridTextColumn属性,如下所示。

<controls:DataGridTextColumn  >
    <controls:DataGridTextColumn.CellStyle>
        <Style TargetType="controls:DataGridCell">
            <Style.Setters>
                <Setter Property="HorizontalAlignment" Value="Right"/>
            </Style.Setters>
        </Style>
    </controls:DataGridTextColumn.CellStyle>
</controls:DataGridTextColumn>

样式将适用于特定的列。

答案 1 :(得分:0)

您必须设置HorizontalContentAlignment而不是HorizontalAlignment,因为水平对齐会更改像元大小。将单元格大小扩展到列大小时,默认单元格HorizontalAlignmentStretch

当您设置HorizontalAlignment时,这是一张图片 cell size is changes

这是设置HorizontalContentAlignment时的图片 enter image description here


基本上,您可以定义三种不同的单元格样式:

    <Style x:Key="DataGridCellLeft" TargetType="controls:DataGridCell">
        <Setter Property="HorizontalContentAlignment" Value="Left" />
    </Style>
    <Style x:Key="DataGridCellCenter" TargetType="controls:DataGridCell">
        <Setter Property="HorizontalContentAlignment" Value="Center" />
    </Style>
    <Style x:Key="DataGridCellRight" TargetType="controls:DataGridCell">
        <Setter Property="HorizontalContentAlignment" Value="Right" />
    </Style>

在定义列时像CellStyle一样使用它。