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>