GridView无法像Grid那样重新定义新的列,所以宽度只能设定固定和自动,这就不符合现在自适应的应用设计,在网上找了很久没有有效的方法,这个方法能实现。
<Grid>
<!--测试-->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" x:Name="column1"/>
<Grid Grid.Column="1" x:Name="column2"/>
<Grid Grid.Column="2" x:Name="column3"/>
<Grid Grid.Column="3" x:Name="column4"/>
</Grid>
<ListView x:Name="listview">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" Width="{Binding ElementName=column1,Path=ActualWidth}"/>
<GridViewColumn Header="Name" Width="{Binding ElementName=column2,Path=ActualWidth}"/>
<GridViewColumn Header="Skill" Width="{Binding ElementName=column3,Path=ActualWidth}"/>
<GridViewColumn Header="已工作" Width="{Binding ElementName=coulmn4,Path=ActualWidth}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
通过自定义一个Grid将列的宽度绑定起来,实现的按比例。