【发布时间】:2015-05-07 09:17:10
【问题描述】:
我有一个“一堆”扩展器,它们可以独立打开/关闭。
除了一个之外,所有的都有一个固定的高度(展开时)。另一个有MinHeight,但我希望它能够拉伸以填充剩余的可用高度。如果扩展器的组合高度大于可用高度,则会出现滚动条。
我已经使用Grid 做到了这一点,每个网格有一个扩展器,Height 行设置为* 用于拉伸扩展器,Auto 用于其他扩展器。
这工作正常,除了在一种情况下:如果可伸缩扩展器折叠,并且其他扩展器的组合高度小于可用高度,那么拉伸扩展器无论如何都会填充剩余空间,只是它的内容被折叠了,所以我得到了一大块背景颜色。
我也尝试过 StackPanel 或嵌套网格,但在不创建其他问题的情况下无法解决该问题。
有什么想法吗?
(将其粘贴到窗口中)
<ScrollViewer>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*" MinHeight="23"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Expander IsExpanded="False" Grid.Row="0" Header="Fixed">
<Border Background="Red" Height="200" />
</Expander>
<Expander IsExpanded="False" Grid.Row="1" Header="Stretchy">
<Border Background="Blue" />
</Expander>
<Expander IsExpanded="False" Grid.Row="2" Header="Fixed">
<Border Background="Green" Height="300" />
</Expander>
</Grid>
</ScrollViewer>
【问题讨论】:
-
你能插入你的 xaml 吗?或多或少很清楚,但我想看看:)
-
@sac1 你的愿望就是我的命令...