Wpf 折叠任何柱后调整轴网柱的大小
我在网格中有三个按钮Wpf 折叠任何柱后调整轴网柱的大小,wpf,Wpf,我在网格中有三个按钮 <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Button Grid.Column="0" Content
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Content="A" />
<Button Grid.Column="1" Content="B" />
<Button Grid.Column="2" Content="C" />
</Grid>
我希望,具有Visibility=“Collapsed”的按钮不会占用空间
比如说
(一)
//33%的空间
//33%的空间
//33%的空间
(二)
//50%的空间
//50%的空间
//0%的空间
(三)
//100%的空间
//0%的空间
//0%的空间
我该怎么做?试试这个:
<Grid Name="grid">
<Grid.Resources>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="Visibility" Value="Collapsed">
<Setter Property="Tag" Value="0"/>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding ElementName=A,Path=Tag}" />
<ColumnDefinition Width="{Binding ElementName=B,Path=Tag}" />
<ColumnDefinition Width="{Binding ElementName=C,Path=Tag}" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Content="A" Name="A" Click="Button_Click" />
<Button Grid.Column="1" Content="B" Name="B" />
<Button Grid.Column="2" Content="C" Name="C" Visibility="Collapsed" />
</Grid>
更改列的宽度,而不是更改按钮的可见性
。即使是未使用的列也会占用空间,除非使用isAuto
。在本例中,看起来使用StackPanel比使用网格更好。然后,当您折叠图元时,布局将按预期进行更改。
<Button Grid.Column="0" Content="A" /> //50% of space
<Button Grid.Column="1" Content="B" /> //50% of space
<Button Grid.Column="2" Content="C" Visibility="Collapsed" /> //0% of space
<Button Grid.Column="0" Content="A" /> //100% of space
<Button Grid.Column="1" Content="B" Visibility="Collapsed" /> //0% of space
<Button Grid.Column="2" Content="C" Visibility="Collapsed" /> //0% of space
<Grid Name="grid">
<Grid.Resources>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="Visibility" Value="Collapsed">
<Setter Property="Tag" Value="0"/>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding ElementName=A,Path=Tag}" />
<ColumnDefinition Width="{Binding ElementName=B,Path=Tag}" />
<ColumnDefinition Width="{Binding ElementName=C,Path=Tag}" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Content="A" Name="A" Click="Button_Click" />
<Button Grid.Column="1" Content="B" Name="B" />
<Button Grid.Column="2" Content="C" Name="C" Visibility="Collapsed" />
</Grid>