今天遇到的問題:
方法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上話沒效果。
方法2:設定Style,推薦。
<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>