C# 如何将DataGridColumn文本(而不是标题)居中?
我有这个C# 如何将DataGridColumn文本(而不是标题)居中?,c#,wpf,C#,Wpf,我有这个DataGrid结构: <DataGrid AutoGenerateColumns="False" CanUserAddRows="False" HorizontalContentAlignment="Center" CanUserResizeColumns="False"
DataGrid
结构:
<DataGrid AutoGenerateColumns="False"
CanUserAddRows="False"
HorizontalContentAlignment="Center"
CanUserResizeColumns="False"
CanUserSortColumns="False"
CanUserResizeRows="False"
BorderBrush="DimGray"
BorderThickness="1"
IsReadOnly="True"
ItemsSource="{Binding MatchStats}"
HorizontalAlignment="Right"
Width="255"
Margin="10, 10, 30, 0">
<DataGrid.Columns>
<DataGridTextColumn Header="Foo" Binding="{Binding Path = PlayingMatch}" >
<DataGridTextColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MetroDataGridColumnHeader}">
<Setter Property="Background" Value="LightGreen" />
<Setter Property="Width" Value="85" />
</Style>
</DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>
...
...
我需要做的是将行的DataGrid
文本设置为居中。实际上,我在标题中处理了这种情况,但我无法对行执行此操作。我在堆栈上看到了其他类似的问题,但所有这些问题都使用了textblock
,我没有使用任何textblock来显示图像中的内容
有可能这样做吗
实际结果:
三个0应转到中间。在windows.resources部分添加以下样式
<Style x:Key="{x:Type DataGridCell}" TargetType="DataGridCell">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Grid>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"></ContentPresenter>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
在windows.resources部分添加以下样式
<Style x:Key="{x:Type DataGridCell}" TargetType="DataGridCell">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Grid>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"></ContentPresenter>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
DataGridTextColumn是用文本块构建的。因此,当没有更改时(如您提供的代码),它将与TextBlock.TextAlignment一起工作
<Style TargetType="{x:TypeDataGridCell}">
<Style.Setters>
<Setter Property="TextBlock.TextAlignment" Value="Center" />
</Style.Setters>
</Style>
DataGridTextColumn是用文本块构建的。因此,当没有更改时(如您提供的代码),它将与TextBlock.TextAlignment一起工作
<Style TargetType="{x:TypeDataGridCell}">
<Style.Setters>
<Setter Property="TextBlock.TextAlignment" Value="Center" />
</Style.Setters>
</Style>