C# 按编程方式折叠轴网柱不起作用
我正在使用通用Windows应用程序WPF为Raspberry PI开发一个UI 我必须:C# 按编程方式折叠轴网柱不起作用,c#,uwp,C#,Uwp,我正在使用通用Windows应用程序WPF为Raspberry PI开发一个UI 我必须: <Grid.ColumnDefinitions> <ColumnDefinition Width="400"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition> </Grid.ColumnDefinitions> <Grid C
<Grid.ColumnDefinitions>
<ColumnDefinition Width="400"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid Column="0" name="Column0">
...
</Grid>
<Grid Column="1" name="Column1">
...
</Grid>
但显然,第二列并不能自动适应整个窗口的宽度。即使第一列折叠,第二列具有*
列宽,它也会保持相同的宽度
为什么??我的错在哪里
第一列未折叠,因为其宽度仍设置为400。折叠第一列内容时,必须将其宽度设置为0,以便第二列自动扩展为全宽
正如@Mogzol所说,在设置控件将显示在哪个列时,应该使用附加的属性Grid.Column
XAML:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="CD_Column0" Width="400"></ColumnDefinition>
<ColumnDefinition x:Name="CD_Column1" Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid x:Name="Gr_Column0" Grid.Column="0">
...
</Grid>
<Grid x:Name="Gr_Column1" Grid.Column="1">
...
</Grid>
</Grid>
private async void DisplaySomething_Click( object sender, RoutedEventArgs e )
{
if( string.IsNullOrWhiteSpace( City.Text ) ) {
return;
}
// do some stuff
Gr_Column0.Visibility = Visibility.Collapsed;
CD_Column0.Width = new GridLength(0);
}
由于Column1
具有*
宽度,因此不应将其设置为MyPage.ActualWidth
,一旦折叠Column0
它应该只填充所有网格空间,不存在网格。Column
,只存在
private async void DisplaySomething_Click( object sender, RoutedEventArgs e )
{
if( string.IsNullOrWhiteSpace( City.Text ) ) {
return;
}
// do some stuff
Gr_Column0.Visibility = Visibility.Collapsed;
CD_Column0.Width = new GridLength(0);
}