Center text in XAML Column and ListViewItem

纵然是瞬间 提交于 2020-01-30 11:00:48

问题


I want to be able to center the text in the column and the cell for one column. This is the XAML that I have so far. I cannot figure out how to do it for one item opposed to all of them.

    <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>

Fairly new to XMAL. Any help would be greatly appreciated.


回答1:


Set the HorizontalContentAlignment property of the ListViewItem container to Stretch and use a CellTemplate with a TextBlock for the cell you want to center:

<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>


来源:https://stackoverflow.com/questions/45630865/center-text-in-xaml-column-and-listviewitem

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!