我有一个动画可以展开/折叠一些StackPanel
,在窗口中有一些ToggleButton
在StackPanel
折叠时必须取消选中。我有这样的动画:
<Storyboard x:Key="cmdUnchecked">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="StackPanel1" Storyboard.TargetProperty="(FrameworkElement.Height)">
<SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="37"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
这会隐藏StackPanel
,但我需要从其他事件中取消选中T oggleButton
。
是否可以取消选中ToggleButton
来自此StoryBoard
?
如果是,我是否需要验证它是否已经选中/未选中?
答案 0 :(得分:1)
您可以像这样使用ObjectAnimationUsingKeyFrame:
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="YourToggleButton" Storyboard.TargetProperty="(ToggleButton.IsChecked)">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False" />
</ObjectAnimationUsingKeyFrames>
你应该不需要检查它是否已经被检查过,因为当它已经是假的时候将它设置为假应该没有副作用。
答案 1 :(得分:1)
您应该使用BooleanAnimations
为布尔值设置动画:
<BooleanAnimationUsingKeyFrames Storyboard.TargetName="YourToggleButton" Storyboard.TargetProperty="IsChecked">
<DiscreteBooleanKeyFrame Value="False" KeyTime="0:0:0"/>
</BooleanAnimationUsingKeyFrames>
您可以将DoubleAnimations
ToggleButton.Triggers
作为EventTriggers
RoutedEvents
Checked
和Unckecked
,然后点击/取消确认切换按钮使用BooleanAnimation
和ToggleButton
将自动运行双动画来更改stackpanel的高度