原文:
WPF ListView 居中显示
今天遇到的问题:
方法1:设置GridViewColumn的ActualWidth
<ListView >
<ListView.View>
<GridView >
<GridViewColumn Header="名称" Width="200" x:Name="column">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" TextAlignment="Center" MinWidth="{Binding Path=ActualWidth,ElementName=column}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="接收" Width="120" x:Name="sss">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Border MinWidth="{Binding Path=ActualWidth,ElementName=sss}">
<CheckBox IsChecked="{Binding IsReceive}" HorizontalAlignment="Center"/>
</Border>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
注意修改CheckBox居中的时候,需要把他套在Border里,直接写在CheckBox上话没效果。
<Style x:Key="ListViewItemStyle" TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
再修改需要居中的控件HorizontalAlignment=“Center”
<ListView ItemContainerStyle="{DynamicResource ListViewItemStyle}">
<ListView.View>
<GridView >
<GridViewColumn Header="名称" Width="200">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="接收" Width="120">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsReceive}" HorizontalAlignment="Center"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="拒绝" Width="120" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsRefuse}" HorizontalAlignment="Center"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>