我在使用WPF StackPanel
时遇到了麻烦 - 我需要让它动画不仅仅是为了滚动它的内容(这或多或少都可以),而且我必须让它展开/折叠(动画)按下包含窗口上的某个按钮。
我尝试了很多动画扩展器控件(例如http://www.codeproject.com/KB/WPF/AnimatingExpander.aspx)但是它们已经过载了功能(以及一些包含控件的工件),并且不适合我的任务。
所以问题是如何通过按钮点击使SIMPLE水平定向StackPanel
通过动画展开/折叠?
答案 0 :(得分:1)
最简单的方法是在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>
答案 1 :(得分:0)
为什么不为stackpanel的宽度添加故事板和双动画。通过单击按钮,您可以在代码中或通过定义事件触发器来启动动画。