Wpf 如何在DataGrid中对列进行文本对齐?(理性的方式)
我使用WPF(C#)。我使用数据网格。 我希望第一列与中心对齐,其他列右对齐 我有一般风格:Wpf 如何在DataGrid中对列进行文本对齐?(理性的方式),wpf,datagrid,styles,text-alignment,Wpf,Datagrid,Styles,Text Alignment,我使用WPF(C#)。我使用数据网格。 我希望第一列与中心对齐,其他列右对齐 我有一般风格: <Style x:Key="TextInCellCenter" TargetType="{x:Type TextBlock}" > <Setter Property="HorizontalAlignment" Value="Center"/> </Style> <Style TargetType="{x:Type DataGridCell}">
<Style x:Key="TextInCellCenter" TargetType="{x:Type TextBlock}" >
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="HorizontalAlignment" Value="Right"/>
</Style>
数据网格:
<DataGrid Name="DG1">
<DataGrid.Columns>
<DataGridTextColumn ElementStyle="{StaticResource TextInCellCenter}" Binding="{Binding Path=Name}" />
<DataGridTextColumn Binding="{Binding Path=Number}" />
<DataGridTextColumn Binding="{Binding Path=Number}" />
....
<DataGridTextColumn Binding="{Binding Path=Number}" />
<DataGridTextColumn Binding="{Binding Path=Number}" />
</DataGrid.Columns>
</DataGrid>
<DataGrid Name="DG2">
<DataGrid.Columns>
<DataGridTextColumn ElementStyle="{StaticResource TextInCellCenter}" Binding="{Binding Path=Name}" />
<DataGridTextColumn Binding="{Binding Path=Number}" />
<DataGridTextColumn Binding="{Binding Path=Number}" />
...
<DataGridTextColumn Binding="{Binding Path=Number}" />
<DataGridTextColumn Binding="{Binding Path=Number}" />
</DataGrid.Columns>
</DataGrid>
....
....
...
....
我有所有列都是右对齐的
请告诉我,如何更改第一列的文本对齐方式
p、 如何以理性的方式做到这一点?我有很多类似的表。您可以更改
TextBlock
的ElementStyle
,将TextAlignment
更改为Right
或Center
,并基于每列应用它
<DataGridTextColumn Binding="{Binding Path=Number}" >
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextAlignment" Value="Right"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
谢谢,但是第一种方法不起作用,第二种方法不方便,因为我有10多个表,其中有很多相同的列(比如列“Number”)。为每个相同的列定义样式需要很多时间。
<DataGrid>
<DataGrid.Resources>
<Style x:Key="TextInCellCenter" TargetType="{x:Type TextBlock}" >
<Setter Property="TextAlignment" Value="Center"/>
</Style>
<Style TargetType="{x:Type TextBlock}" x:Key="RightAligElementStyle">
<Setter Property="TextAlignment" Value="Right"/>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn ElementStyle="{StaticResource TextInCellCenter}" Binding="{Binding Path=Name}" />
<DataGridTextColumn Binding="{Binding Path=Number}" ElementStyle="{StaticResource RightAligElementStyle}" />
<DataGridTextColumn Binding="{Binding Path=Number}" ElementStyle="{StaticResource RightAligElementStyle}"/>
<DataGridTextColumn Binding="{Binding Path=Number}" ElementStyle="{StaticResource RightAligElementStyle}"/>
</DataGrid.Columns>
</DataGrid>