WPF ListView 列标题对齐

无情 阅读:7 2024-05-29 10:23:45 评论:0

我正在编写一个 WPF Windows 应用程序,MainWindow 包含一个具有 3 列的 ListView 控件。

以下代码在列标题中居中显示文本(默认情况下)。

<Window x:Class="WpfApplication1.MainWindow" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
        xmlns:local="clr-namespace:WpfApplication1" 
        mc:Ignorable="d" 
        Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
        <ListView> 
            <ListView.View> 
                <GridView> 
                    <GridViewColumn Header="Column 1"  
                                    Width="200"/> 
                    <GridViewColumn Header="Column 2"  
                                    Width="200"/> 
                    <GridViewColumn Header="Column 3"  
                                    Width="200"/> 
                </GridView> 
            </ListView.View> 
        </ListView> 
    </Grid> 
</Window> 

我发现了以下 How to align the column header in a WPF ListView_GridView control显示如何左对齐列标题文本的文章。我已经粘贴了下面的列:
<Window x:Class="WpfApplication1.MainWindow" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
        xmlns:local="clr-namespace:WpfApplication1" 
        mc:Ignorable="d" 
        Title="MainWindow" Height="350" Width="525"> 
    <Window.Resources> 
        <Style TargetType="{x:Type GridViewColumnHeader}"> 
            <Setter Property="HorizontalContentAlignment" Value="Left" /> 
        </Style> 
    </Window.Resources> 
    <Grid> 
        <ListView> 
            <ListView.View> 
                <GridView> 
                    <GridViewColumn Header="Column 1"  
                                    Width="200"/> 
                    <GridViewColumn Header="Column 2"  
                                    Width="200"/> 
                    <GridViewColumn Header="Column 3"  
                                    Width="200"/> 
                </GridView> 
            </ListView.View> 
        </ListView> 
    </Grid> 
</Window> 

但我需要第一列标题文本左对齐,第二和第三列标题文本居中(如图所示)。


有人可以告诉我如何左对齐第一列中的列标题文本。以及如何将列标题文本居中放置在第 2 列和第 3 列中?

请您参考如下方法:

设置 HeaderContainerStyle仅第一列的属性并从 <Window.Resources> 中删除隐式样式:

<Window x:Class="WpfApplication1.MainWindow" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
        xmlns:local="clr-namespace:WpfApplication1" 
        mc:Ignorable="d" 
        Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
        <ListView> 
            <ListView.View> 
                <GridView> 
                    <GridViewColumn Header="Column 1" Width="200"> 
                        <GridViewColumn.HeaderContainerStyle> 
                            <Style TargetType="{x:Type GridViewColumnHeader}"> 
                                <Setter Property="HorizontalContentAlignment" Value="Left" /> 
                            </Style> 
                        </GridViewColumn.HeaderContainerStyle> 
                    </GridViewColumn> 
                    <GridViewColumn Header="Column 2" Width="200"/> 
                    <GridViewColumn Header="Column 3" Width="200"/> 
                </GridView> 
            </ListView.View> 
        </ListView> 
    </Grid> 
</Window> 


标签:程序员
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号