UWP Community Toolkit DataGrid 控件:如何将单元格内容右对齐
UWP Community Toolkit DataGrid control : how to align cell content to right
我在 DataGrid I want its content be right-aligned. I have read the docs, mostly 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>
不出所料,此代码确实可以满足我的要求,但包含所有单元格。我只希望数字列有这个属性,而且只有它,但我一直无法完成这个。
我做错了什么?
I want only the numeric column to have this property, and only it
根据您的要求,您可以为特定的 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>
该样式适用于特定列。
您必须设置 HorizontalContentAlignment
而不是 HorizontalAlignment
,因为水平对齐会改变单元格大小。默认的单元格 HorizontalAlignment
是 Stretch
whis 将单元格大小拉伸为列大小。
这是设置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
一样使用它。
我在 DataGrid I want its content be right-aligned. I have read the docs, mostly 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>
不出所料,此代码确实可以满足我的要求,但包含所有单元格。我只希望数字列有这个属性,而且只有它,但我一直无法完成这个。
我做错了什么?
I want only the numeric column to have this property, and only it
根据您的要求,您可以为特定的 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>
该样式适用于特定列。
您必须设置 HorizontalContentAlignment
而不是 HorizontalAlignment
,因为水平对齐会改变单元格大小。默认的单元格 HorizontalAlignment
是 Stretch
whis 将单元格大小拉伸为列大小。
这是设置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
一样使用它。