我需要一些帮助才能创造出我想要的设计
我的ViewModel有三个集合,使用Caliburn.Micro绑定到三个ItemsControl
。每个系列包含10到31个项目
我想将每个ItemControl
放入Expander
。到目前为止,这么简单:
<StackPanel>
<Expander IsExpanded="True" Header="Day recordings">
<ItemsControl Name="DayRecordings" />
</Expander>
<Expander IsExpanded="False" Header="Month recordings">
<ItemsControl Name="MonthRecordings" />
</Expander>
<Expander IsExpanded="False" Header="Digit recordings">
<ItemsControl Name="DigitRecordings" />
</Expander>
</StackPanel>
现在的问题是它们超出了它们所包含的StackPanel
范围
我希望Expander
的行为如下:
Expander
,则应使用StackPanel
的完整空格减去其他未扩展Expander
所需的空间。在展开的Expander
内,应显示垂直ScrollBar
。Expander
,则每个应占StackPanel
总空间的1 / N减去其他未扩展Expander
所需的空间。在每个展开的Expander
中,应显示垂直ScrollBar
。
Expander
需要的空间少于指定的1 / Nth,则它应该只使用所需的空间,并且多余的空间应该均匀地分配给其他展开的Expander
。 不幸的是,我没有上面的简单XAML,因为我甚至不知道如何解决这个问题......
答案 0 :(得分:1)
使用ScrollViewer,在其中放置网格,将行高设置为自动。
如果你想要一些奇特的布局,可以在MaxHeight上放一个转换器。
答案 1 :(得分:0)
使用工具包中的accordion控件来获取所需的行为。