WPF中的手风琴控制

时间:2011-09-14 20:14:14

标签: c# wpf

我正在看WPF工具包中的Accordion Control这个例子:

http://www.dotnetspark.com/kb/1931-accordion-wpf-toolkit-tutorial.aspx

我把我的两个项目放在那里,我曾经在使用GridSplitter(基本上是1行,2个cols)之间调整大小。

   A: stuff here on one side of screen (gridsplitter) B: stuff here on other side of screen 

当我使用该示例并将每个项目作为AccordionItem时,每个项目占据整个屏幕。所以它都是A,然后如果我点击>,它就是全部B.有没有办法做到这一点所以我可以拥有相同的设置,分屏,然后你点击>,它缩小一边(A)并且(B)将占据整个屏幕,然后如果你击中另一个>,它缩小了边(B)并且(A)占据了整个屏幕。像小<和>在Outlook中,缩小LHS上的文件夹视图和RHS上的日历视图。感谢。

2 个答案:

答案 0 :(得分:0)

我们遇到了类似的问题。我们最终创建了自己的定制手风琴控制,因为它在.Net 4.0中不可用。我强烈建议你这样做。滚动自己将允许您对此进行更多控制,并确定您想要的内容面板数量(两个,三个等)。

答案 1 :(得分:0)

这里是一个演示项目,该项目在WPF中以125行纯XAML实现了完整的动画手风琴:

Accordion on WPF Pure XAML

当我打开Visual Studio解决方案并对其进行测试时,它看起来像是一种魅力。确实应该为此创建一个GitHub存储库。如果事实证明可以在我自己的项目中工作,我可能会将其放在git hub存储库中,然后编辑此帖子以链接到它。

当然,上面的评论中也建议链接。为了全面起见,我在这里替换它:

StackOverflow Question: Accordion Control for NET 4 (from Expanders)

在SO问题上描述的方法实现了Expander,基本上是手风琴,每个手风琴只有一个带有内容窗格的标题。将多个Expander堆叠在一起是一种创建完整手风琴的方法。

另一个SO问题,讨论使用带有模板的Expanders创建手风琴:

Accordion Widget in Wpf (from Expanders)