我使用WPF(C#)。我使用DataGrid。 我希望第一列与中心对齐,其他列右对齐。
我一般都有风格:
<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:
<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.S。如何以理性的方式做到这一点?我有很多类似的表格。
答案 0 :(得分:2)
您可以更改DataGridCell
的{{1}}并将ElementStyle
更改为TextBlock
或TextAlignment
而不是更改Right
的样式,而是应用它按列列出
Center
或在<DataGridTextColumn Binding="{Binding Path=Number}" >
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextAlignment" Value="Right"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
中创建此Style
,以便您可以申请多一列
DataGrid.Resources