如何将行号放在 DataGridRowHeader 中,不冲突行 Header 样式
How can put Row number in DataGridRowHeader with out of conflict Row Header style
我用这两个answer ,answer 2
它们工作正常,但是它们与 RowHeaderstyle 有冲突,例如当设置 HorizontalContentAlignment="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 的默认模板中,没有对 HorizontalContentAlignment 的引用:
https://msdn.microsoft.com/en-us/library/ff506248(v=vs.110).aspx
寻找:
<Style TargetType="{x:Type DataGridRowHeader}">
我建议您覆盖它的默认样式和模板,这样您就可以更改内容的 HorizontalAlignment。
我用这两个answer ,answer 2
它们工作正常,但是它们与 RowHeaderstyle 有冲突,例如当设置 HorizontalContentAlignment="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 的默认模板中,没有对 HorizontalContentAlignment 的引用:
https://msdn.microsoft.com/en-us/library/ff506248(v=vs.110).aspx
寻找:
<Style TargetType="{x:Type DataGridRowHeader}">
我建议您覆盖它的默认样式和模板,这样您就可以更改内容的 HorizontalAlignment。