我使用带有GridView的ListView作为视图。我在单元格模板中使用TextBlock。我希望文本对齐与列标题匹配 - 我想它涉及使用FindAncestor的某种绑定,但我不太确定如何使其工作。我可能会将文本块与其他内容一起包装在自定义控件中,并且我希望在自定义控件中包含继承行为,因此我不必继续重复它。
<GridViewColumn Width="140" Header="Creator">
<GridViewColumn.HeaderContainerStyle>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="TextElement.FontSize" Value="11" />
<Setter Property="HorizontalContentAlignment" Value="Right"/>
<Setter Property="Height" Value="16" />
</Style>
</GridViewColumn.HeaderContainerStyle>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Margin="-6, 0" TextAlignment="{Binding ??}" Text="{Binding Creator}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
<GridViewColumn>
答案 0 :(得分:0)
您必须将Header和CellTemplate ContentAlignment设置为Stretch,这样可以占用更多空间。
然后,您可以将TextAligmnent设置为资源并引用它。
示例:
<Window.Resources>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
<Style TargetType="GridViewColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
</Style>
<TextAlignment x:Key="myTextAlignment">Right</TextAlignment>
</Window.Resources>
<ListView>
<ListViewItem>Value1</ListViewItem>
<ListViewItem>Value2</ListViewItem>
<ListViewItem>Value3</ListViewItem>
<ListViewItem>Value4</ListViewItem>
<ListView.View>
<GridView>
<GridViewColumn Width="100" Header="Creator">
<GridViewColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="Header" TextAlignment="{StaticResource myTextAlignment}"></TextBlock>
</DataTemplate>
</GridViewColumn.HeaderTemplate>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock TextAlignment="{StaticResource myTextAlignment}" Text="{Binding}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>