这是我的示例代码。试着运行它,但它并没有像预期的那样工作.参考[图片][1] & [图片][2]
图片1:【1】。https:/i.stack.imgur.comMkDhl.png图片2:【1】。https:/i.stack.imgur.comySUHS.png
根据图片2:Column 2在点击切换时没有自动调整大小,请大家帮忙解决这个问题Thanks in advance。
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="5"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Background="Green">
<ToggleButton x:Name="toggleButton"
Width="30"
Height="30"
Margin="0,10,10,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
IsChecked="True" />
</Border>
<Grid Grid.Column="1"
Visibility="{Binding ElementName=toggleButton, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}">
<WrapPanel Background="Aqua">
<TextBlock Margin="8" Text="Item 01" />
<TextBlock Margin="8" Text="Item 02" />
<TextBlock Margin="8" Text="Item 03" />
<TextBlock Margin="8" Text="Item 04" />
<TextBlock Margin="8" Text="Item 05" />
</WrapPanel>
</Grid>
<GridSplitter Width="5"
ResizeBehavior="CurrentAndNext"
Grid.Column="1"
Visibility="{Binding ElementName=toggleButton, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}" />
<Grid Grid.Column="3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Yellow">
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"
Text="Column 2" />
</Grid>
</Grid>
你漏掉了Grid.ColumnDefinitions.你必须将相应的列定义为 Width="Auto"
.
BooleanToVisibilityConverter只有在IsChecked=false时才会隐藏,这意味着空间仍然存在。写自己的BooleanToVisibilityConverter,当传入的bool为false时,设置Visibility.Collapsed。