WPF:设置GridViewColumn的文本对齐方式

Sau*_*tka 7 wpf xaml listview

默认情况下,文本在a的标题中居中ListView(不在内容单元格中!),我一直在努力让它保持对齐,这就是我想出的:

<ListView.Resources>
    <DataTemplate x:Key="Templ">
       <TextBlock HorizontalAlignment="Left" Text="{Binding}"/>
    </DataTemplate>
</ListView.Resources>   
...
<GridViewColumn HeaderTemplate="{StaticResource Templ}">File</GridViewColumn>
Run Code Online (Sandbox Code Playgroud)

这似乎是改变标题外观的正确位置,因为我可以更改其他属性,如Margin等,但它不响应HorizontalAlignment属性!我猜测文本框的大小适合内容并且本身居中,从而使对齐属性变得多余.

如何使文本保持对齐?

Qua*_*ter 21

HeaderContainerStyle设置为将Horizo​​ntalContentAlignment设置为left 的样式:

<ListView.Resources>
    <DataTemplate x:Key="Templ">
        <TextBlock HorizontalAlignment="Left" Text="{Binding}"/>
    </DataTemplate>
    <Style x:Key="HeaderStyle" TargetType="GridViewColumnHeader">
        <Setter Property="HorizontalContentAlignment" Value="Left"/>
    </Style>
</ListView.Resources>
<ListView.View>
    <GridView>
        <GridView.Columns>
            <GridViewColumn HeaderTemplate="{StaticResource Templ}" HeaderContainerStyle="{StaticResource HeaderStyle}">File</GridViewColumn>
        </GridView.Columns>
    </GridView>
</ListView.View>
Run Code Online (Sandbox Code Playgroud)