首页 > 解决方案 > UWP Community Toolkit DataGrid 控件:如何将单元格内容右对齐

问题描述

我在DataGrid中有一个数字列,我希望它的内容右对齐。我已经阅读了文档,主要是针对单元格、行和标题的可定制模板和样式,我最终使用此代码来完成右对齐单元格内容:

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

正如所料,这段代码确实做了我想要的,但包含所有单元格。我只希望数字列具有此属性,并且只有它,但我无法做到这一点。

我究竟做错了什么?

标签: datagriduwp-xamlwindows-community-toolkit

解决方案


您必须设置HorizontalContentAlignment而不是HorizontalAlignment因为水平对齐会更改单元格大小。默认单元格HorizontalAlignmentStretchwhis 将单元格大小拉伸到列大小。

这是设置时的图片 HorizontalAlignment 单元格大小是变化的

这是您设置时的图片HorizontalContentAlignment 在此处输入图像描述


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

    <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像定义列时一样使用它。


推荐阅读