关于动画:WPF:扩展器堆叠在一起,一个应该扩展并占用所有剩余空间

WPF: Expanders stacked on top of each other where one should be expanded and take all remaining space

我认为这是众所周知的控件,但我在网络上找不到 WPF 示例/博客。我需要的是像 StackPanel 一样堆叠在彼此之上的 Expander WPF 控件的集合。不同之处在于扩展器默认情况下应该折叠,一旦其中一个展开,它应该占用所有剩余空间。如果扩展扩展器位于堆栈的中间,它应该将其下方的项目一直向下推到父元素的底部边缘。每个展开/折叠动作都应该是动画的。

StackPanel 作为 Expanders 的父面板是不可能的,因为它不能将"所有剩余空间"给它的子(ren)。 DockPanel 部分执行此操作,但它只能为"最后一个孩子"执行此操作,我需要能够为任何孩子执行此操作。

那么实现这个的最佳方法是什么?


为了回答我的问题,我刚刚发现像这样的控件称为 Accordion。网上有几个实现,但我认为最完整的是 WPF Toolkit http://wpf.codeplex.com/