【发布时间】:2014-07-31 20:57:18
【问题描述】:
给定以下 XAML;
<Grid>
<Grid.RowDefinitions>
<RowDefinition MinHeight="100"/>
<RowDefinition Height="2"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Border Grid.Row="0"
Background="LightBlue">
<Button Height="30"
Click="Button_Click">Hide Lower Panel</Button>
</Border>
<GridSplitter Grid.Row="1"
ResizeDirection="Rows"
Width="Auto"
HorizontalAlignment="Stretch"
Margin="0"
x:Name="Splitter"/>
<Border Grid.Row="2"
Background="LightCoral"
x:Name="LowerPanel" MinHeight="25"/>
</Grid>
Button_Click 在哪里;
this.LowerPanel.Visibility = this.LowerPanel.Visibility == Visibility.Visible
? Visibility.Collapsed
: Visibility.Visible;
看起来像这样;
如果在执行任何其他操作之前单击按钮,则它会按预期折叠;
但是,如果我使用网格拆分器调整大小..
然后当我按下按钮时,会发生以下情况;
有没有办法让下部元素在调整大小后再次正确折叠?
注意:出于这个问题的目的,我刚刚使用了代码隐藏事件处理程序和一个按钮来触发它,但在现实生活中,它以正确的 MVVM 方式完成,可见性由绑定属性确定视图模型。
【问题讨论】:
-
如果再次将边框的可见性设置为可见,边框的期望高度是多少?
-
两种结果都可以——要么恢复默认值,要么恢复到折叠时的大小。