所以,我有2个扩展器。 一个应位于控件的顶部,一个应位于控件的底部。
当我点击顶部展开器时,底部应折叠,顶部应向下展开并占用所有可用空间,而无需移除或推出页面底部。反之,当我单击底部扩展器时,顶部应该折叠,底部应该向上扩展并占用控件上的所有可用空间。
我遇到的问题是视觉问题,我知道如何在我的ViewModel中绑定扩展器的 IsExpanded 并相应地更新它们。我不知道要使用哪些控件以及如何正确设置它们。
我尝试过使用Grid,但如果我将行高设置为*,无论我做什么,它们的高度(当然)都会保持不变,并且内容只会扩展到行的允许高度。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<Expander
Grid.Row="0"
Margin="5"
Header="Server Connections"
IsExpanded="{Binding IsTopExpanded}">
*** ListBox With Content ***
</Expander>
<Expander
Grid.Row="1"
Margin="5"
Header="Server Browser"
IsExpanded="{Binding IsBottomExpanded}">
*** Some Content ***
</Expander>
</Grid>
我尝试使用StackPanel,但顶级Expander内容没有收到垂直滚动条,因此如果我有很多项目 - 我无法向下滚动。
希望我很清楚,如果我不是 - 请告诉我。 :)
答案 0 :(得分:1)
您需要为*
的{{1}}设置Auto
和Height
之间的切换。您可以使用两个RowDefinition
s执行此操作:
Style