Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to center text in a specific column in WPF ListView?

I tried this and also HorizontalAlignment, instead of TextAlignment but they still show up aligned to left.

<Window x:Class="EditorWindow.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        DataContext="{Binding RelativeSource={RelativeSource Self}}"
        Title="MainWindow" Height="800" Width="600">
    <Grid>
        <ListView ItemsSource="{Binding Effects}">
            <ListView.View>
                <GridView>
                    <GridViewColumn Width="100" Header="Name" DisplayMemberBinding="{Binding Name}"  />
                    <GridViewColumn Width="100" Header="Type" >
                        <GridViewColumn.CellTemplate >
                            <DataTemplate>
                                <TextBlock Text="{Binding Type}" TextAlignment="Center"/>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn Width="100" Header="Opacity" DisplayMemberBinding="{Binding Opacity}" />
                </GridView>
            </ListView.View>
        </ListView>
    </Grid>
</Window>
like image 722
Joan Venge Avatar asked Feb 23 '11 23:02

Joan Venge


1 Answers

Try to set HorizontalContentAlignment to Stretch for the ItemContainerStyle. Then it should work with either TextAlignment="Center" or HorizontalAlignment="Center" for the TextBlock

<ListView ItemsSource="{Binding Effects}">
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        </Style>
    </ListView.ItemContainerStyle>
    <!--...-->
</ListView>
like image 167
Fredrik Hedblad Avatar answered Nov 14 '22 09:11

Fredrik Hedblad