我有这个 xaml 代码:
<DataGridTextColumn Header="number" Binding="{Binding Path=Number, Mode=OneWay}" Width="70" CanUserResize="False" >
<DataGridTextColumn.CellStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Status" Binding="{Binding Path=ProcessingState}" Width="100">
<DataGridTextColumn.CellStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
但是当它显示在屏幕上时,它会生成此 View :
可以看出,单元格未与标题对齐。我怎样才能使它们对齐?
最佳答案
如果您只是想让单元格中的文本居中,那么您可以像这样使用 DataGridTemplateColumn
:
<DataGrid ItemsSource="{Binding SalesPeriods}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="number" Width="70" CanUserResize="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Number, Mode=OneWay}"
HorizontalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Status" Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=ProcessingState, Mode=OneWay}"
HorizontalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
如果您更喜欢使用 DataGridTextColumn
,那么您仍然可以使用 ElementStyle
属性实现此目标:
<DataGridTextColumn Header="number" Binding="{Binding Path=Year, Mode=OneWay}"
Width="70" CanUserResize="False" >
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
关于c# - 为什么单元格标题和单元格内容在数据网格中不对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21280849/