4

我正在使用 WPFToolkit DataGrid 控件,我想重新设置一些列标题的样式,以便标题文本垂直而不是水平显示(列中的数据都是数字,因此不是很宽,但标题文本是长)。因此,我创建了一个 DataTemplate 并尝试将 DataGridColumn.HeaderTemplate 获取到它。这是我的模板:

<DataTemplate x:Key="headerTemplate"> 
        <StackPanel VerticalAlignment="Bottom" HorizontalAlignment="Left" Background="Aqua"> 
            <StackPanel.LayoutTransform> 
                <RotateTransform Angle="-90"/> 
            </StackPanel.LayoutTransform> 
            <TextBlock Text="{Binding}" VerticalAlignment="Bottom" HorizontalAlignment="Left" Background="Pink"> 
            </TextBlock> 
        </StackPanel> 
    </DataTemplate>

这工作得很好,除了标题的对齐方式总是左居中。StackPanel 或 TextBlock 的对齐组合似乎没有任何区别。我想让文本在底部和中间对齐。我怎样才能让它做到这一点?

谢谢,

4

3 回答 3

8

好的,找到答案了。

我正在寻找的属性是VerticalContentAlignment

我创建了一个样式并使用 HeaderStyle 属性附加了它,它工作了:)

<Style x:Key="VerticalGridHeaderStyle" TargetType="tk:DataGridColumnHeader">
    <Setter Property="VerticalContentAlignment" Value="Bottom"/>
</Style>
于 2010-03-17T14:57:34.050 回答
2

这也有效

<Style TargetType="{x:Type DataGridColumnHeader}">
   <Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>

x:Key=""如果您不想针对所有 DataGridColumnHeader,请添加

于 2016-10-05T18:38:22.937 回答
2

如果不想弄乱已经应用的样式,请使用 BasedOn:

<DataGrid.ColumnHeaderStyle>
                <Style BasedOn="{StaticResource MetroDataGridColumnHeader}" TargetType="{x:Type DataGridColumnHeader}">
                    <Setter Property="HorizontalContentAlignment" Value="Center" />
                </Style>
            </DataGrid.ColumnHeaderStyle>
于 2018-08-20T20:10:14.787 回答