如何将行号放在 DataGridRowHeader 中,不冲突行 Header 样式

How can put Row number in DataGridRowHeader with out of conflict Row Header style

我用这两个answer ,answer 2

它们工作正常,但是它们与 RowHeaderstyle 有冲突,例如当设置 Horizo​​ntalContentAlignment="Center" 时 在 xaml 或使用 TextBlock 更改寺庙时我遇到同样的问题,它对内容没有影响! (我改变了数据网格的神殿)!!! 但现在我找不到问题了:\ 为什么会出现这个问题? 坦克斯 xaml代码:

enter code here

    <Style TargetType="{x:Type DataGridRow}">
        <Setter Property="Background" Value="White" />
        <Setter Property="Template">
            <Setter.Value>
                        <ControlTemplate TargetType="{x:Type DataGridRow}">
                            <Border x:Name="DGR_Border"
                                        BorderBrush="{TemplateBinding BorderBrush}"
                                        BorderThickness="{TemplateBinding BorderThickness}"
                                            SnapsToDevicePixels="True" Background="White">             

                                <SelectiveScrollingGrid>
                                    <SelectiveScrollingGrid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto" />
                                        <ColumnDefinition Width="*" />
                                    </SelectiveScrollingGrid.ColumnDefinitions>
                                    <SelectiveScrollingGrid.RowDefinitions>
                                        <RowDefinition Height="*" />
                                        <RowDefinition Height="Auto" />
                                    </SelectiveScrollingGrid.RowDefinitions>
                                    <DataGridCellsPresenter Grid.Column="1"
                                        ItemsPanel="{TemplateBinding ItemsPanel}"
                                        SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
                                    <DataGridDetailsPresenter Grid.Row="1"
                                        Grid.Column="1"
                                        SelectiveScrollingGrid.SelectiveScrollingOrientation="{Binding 
                                         AreRowDetailsFrozen,
                                         ConverterParameter={x:Static SelectiveScrollingOrientation.Vertical},
                                          Converter={x:Static DataGrid.RowDetailsScrollingConverter},
                                          RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
                                        Visibility="{TemplateBinding DetailsVisibility}" />
                            <DataGridRowHeader Grid.RowSpan="2"  Width="50" Background="Beige" HorizontalAlignment="Center" HorizontalContentAlignment="Center"
                                        SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical"
                                        Visibility="{Binding HeadersVisibility,
                            ConverterParameter={x:Static DataGridHeadersVisibility.Row},
                               Converter={x:Static DataGrid.HeadersVisibilityConverter},
                                RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}">


                            </DataGridRowHeader>
                        </SelectiveScrollingGrid>
                            </Border>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>

    </Style>
enter code here

似乎在 DataGridRowHeader 的默认模板中,没有对 Horizo​​ntalContentAlignment 的引用:

https://msdn.microsoft.com/en-us/library/ff506248(v=vs.110).aspx

寻找:

<Style TargetType="{x:Type DataGridRowHeader}">

我建议您覆盖它的默认样式和模板,这样您就可以更改内容的 Horizo​​ntalAlignment。