如何在WPF ListView中的特定列中居中文本?

Joa*_*nge 16 .net wpf xaml listview styling

我尝试了这个以及Horizo​​ntalAlignment,而不是TextAlignment,但它们仍然显示为左对齐.

<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>
Run Code Online (Sandbox Code Playgroud)

Fre*_*lad 42

尝试设置HorizontalContentAlignmentStretch了ItemContainerStyle.然后它应该与任何一个TextAlignment="Center"HorizontalAlignment="Center"TextBlock

<ListView ItemsSource="{Binding Effects}">
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        </Style>
    </ListView.ItemContainerStyle>
    <!--...-->
</ListView>
Run Code Online (Sandbox Code Playgroud)

  • 辉煌.有人可以解释为什么你必须这样做才能使它工作? (3认同)
  • 如何仅对特定列执行相同操作 (3认同)
  • 我用<GridViewColumn Header ="Exact Date"Width ="100"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text ="{Binding Path = ExactDate,StringFormat ='MM/dd/yyyy'}"TextAlignment ="Right "Horizo​​ntalAlignment ="Right"/> </ DataTemplate> </ GridViewColumn.CellTemplate> </ GridViewColumn>但它不起作用 (2认同)
  • 不要忘记从列中删除“DisplayMemberBinding”属性,否则根本不会应用“CellTemplate” (2认同)