Wpf 应用自定义样式时重置DatGridCell

Wpf 应用自定义样式时重置DatGridCell,wpf,xaml,styles,Wpf,Xaml,Styles,我有一个包含数据的DataGrid,我想让DataGrid中的所有数据都以它所在的DataGridCell为中心 所以我做了如下(xaml文件) 优先考虑廉价商品 优先考虑昂贵的商品 因此,如下图所示,除了订购数量之外,所有数据都被拉伸并居中对齐,我尝试重新进行对齐,但没有成功 问题是,我如何才能使该专栏延伸并使其内容居中?提前感谢。您在该列上显式设置了CellStyle,这意味着它不使用您在DataGrid.Resources中定义的隐式DataGridCell样式 用两种方法中的任何一

我有一个包含数据的DataGrid,我想让DataGrid中的所有数据都以它所在的DataGridCell为中心

所以我做了如下(xaml文件)


优先考虑廉价商品
优先考虑昂贵的商品
因此,如下图所示,除了
订购数量
之外,所有数据都被拉伸并居中对齐,我尝试重新进行对齐,但没有成功


问题是,我如何才能使该专栏延伸并使其内容居中?提前感谢。

您在该列上显式设置了CellStyle,这意味着它不使用您在DataGrid.Resources中定义的隐式DataGridCell样式

用两种方法中的任何一种都很容易修复:将这两个对齐设置器添加到“订购数量”的样式中,或者更好地使用
BasedOn
属性将该样式基于默认样式,这将使其继承默认样式的所有内容:

<DataGridTextColumn.CellStyle>
    <Style 
        TargetType="DataGridCell" 
        BasedOn="{StaticResource {x:Type DataGridCell}}"
        >
        <Style.Triggers>
            <DataTrigger Binding="{Binding ColorCost}" Value="-1">

这里,显示文本的控件仅与其内容一样宽。它仍然以内容为中心,但是你不能说,因为两边都没有空间。此外,这些线条看起来很有趣。

Thx解决了问题,但为什么它没有考虑到
水平对齐
甚至在该列中设置了它自己?@Blood HaZaRd请参阅更新。水平对齐对这里的任何东西都没有影响。非常感谢。这让我清理了我的代码。伟大的
<DataGridTextColumn.CellStyle>
    <Style 
        TargetType="DataGridCell" 
        BasedOn="{StaticResource {x:Type DataGridCell}}"
        >
        <Style.Triggers>
            <DataTrigger Binding="{Binding ColorCost}" Value="-1">
<DataGrid.Resources>
    <Style TargetType="{x:Type DataGridCell}">
        <Setter Property="TextBlock.TextAlignment" Value="Center"/>
        <Setter Property="HorizontalAlignment" Value="Left"/>
    </Style>
</DataGrid.Resources>