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

OK、答えが見つかりました。

私が探していたプロパティはVerticalContentAlignmentでした。

スタイルを作成し、HeaderStyle プロパティを使用してそれを添付したところ、機能しました :)

<Style x:Key="VerticalGridHeaderStyle" TargetType="tk:DataGridColumnHeader">
    <Setter Property="VerticalContentAlignment" Value="Bottom"/>
</Style>
于 2010-03-17T14:57:34.050 に答える
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 に答える