隐藏WPF StackPanel(不是扩展器)的问题
本文关键字:扩展器 问题 WPF StackPanel 隐藏 | 更新日期: 2023-09-27 18:13:36
我对WPF StackPanel
有一个真正的麻烦-我需要使它动画不仅用于水平滚动其内容(这或多或少是ok的),而且我还必须通过按下包含窗口上的某些按钮使其扩展/折叠(动画)。
我已经尝试了很多动画扩展器控件(例如http://www.codeproject.com/KB/WPF/AnimatingExpander.aspx),但它们的功能过载(以及一些包含控件的工件),不适合我的任务。
所以问题是如何使简单的水平方向的StackPanel
扩展/折叠与动画按钮点击?
最简单的方法是在ToggleButton.Checked
或.Unchecked
事件上启动动画:
<StackPanel x:Name="MyStackPanel">...</StackPanel>
...
<ToggleButton Content="Click Me">
<ToggleButton.Triggers>
<EventTrigger RoutedEvent="ToggleButton.Checked">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="MyStackPanel"
Storyboard.TargetProperty="Width"
To="0"
Duration="0:0:0.5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="ToggleButton.Unchecked">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="MyStackPanel"
Storyboard.TargetProperty="Width"
To="200"
Duration="0:0:0.5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ToggleButton.Triggers>
</ToggleButton>
为什么不为stackpanel的宽度添加一个storyboard和双动画呢?通过单击按钮,您可以在代码中启动动画或通过定义事件触发器。