将 XAML Column 和 ListViewItem 中的文本居中

wil*_*oup 2 wpf xaml listview styles

我希望能够将列中的文本和一列的单元格居中。这是我到目前为止所拥有的 XAML。我不知道如何针对一项而不是所有项来做到这一点。

    <ListView
        Grid.Column="0"
        Margin="3,3,0,3"
        HorizontalAlignment="Stretch"
        VerticalAlignment="Stretch"
        ScrollViewer.HorizontalScrollBarVisibility="Auto"
        ScrollViewer.VerticalScrollBarVisibility="Visible"
        SelectionMode="Single">

        <ListView.View>
            <GridView AllowsColumnReorder="False">
                <GridView.Columns>
                    <GridViewColumn Width="100" DisplayMemberBinding="{Binding CopiedFrom}">
                        <GridViewColumn.Header>
                            <GridViewColumnHeader>Copied From:</GridViewColumnHeader>
                        </GridViewColumn.Header>
                    </GridViewColumn>

                    <GridViewColumn Width="100" DisplayMemberBinding="{Binding Name}">
                        <GridViewColumn.HeaderContainerStyle>
                            <Style TargetType="{x:Type GridViewColumnHeader}">
                                <Setter Property="HorizontalContentAlignment" Value="Center" />
                            </Style>
                        </GridViewColumn.HeaderContainerStyle>
                        <GridViewColumn.Header>
                            <GridViewColumnHeader>Date/Time:</GridViewColumnHeader>
                        </GridViewColumn.Header>
                    </GridViewColumn>
                </GridView.Columns>
            </GridView>
        </ListView.View>
    </ListView>
Run Code Online (Sandbox Code Playgroud)

对 XMAL 来说还很陌生。任何帮助将不胜感激。

mm8*_*mm8 5

HorizontalContentAlignment将容器的属性设置ListViewItemStretch并使用 aCellTemplate和 aTextBlock作为要居中的单元格:

<ListView
        Grid.Column="0"
        Margin="3,3,0,3"
        HorizontalAlignment="Stretch"
        VerticalAlignment="Stretch"
        ScrollViewer.HorizontalScrollBarVisibility="Auto"
        ScrollViewer.VerticalScrollBarVisibility="Visible"
        SelectionMode="Single">
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        </Style>
    </ListView.ItemContainerStyle>
    <ListView.View>
        <GridView AllowsColumnReorder="False">
            <GridView.Columns>
                <GridViewColumn Width="100" DisplayMemberBinding="{Binding CopiedFrom}">
                    <GridViewColumn.Header>
                        <GridViewColumnHeader>Copied From:</GridViewColumnHeader>
                    </GridViewColumn.Header>
                </GridViewColumn>

                <!-- Centered: -->
                <GridViewColumn Width="100">
                    <GridViewColumn.HeaderContainerStyle>
                        <Style TargetType="{x:Type GridViewColumnHeader}">
                            <Setter Property="HorizontalContentAlignment" Value="Center" />
                        </Style>
                    </GridViewColumn.HeaderContainerStyle>
                    <GridViewColumn.Header>
                        <GridViewColumnHeader>Date/Time:</GridViewColumnHeader>
                    </GridViewColumn.Header>
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Name}" HorizontalAlignment="Center" />
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView.Columns>
        </GridView>
    </ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)