1

我有一个展开/折叠一些StackPanels的动画,在窗口中有一些ToggleButtons在折叠时必须取消选中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,但我需要oggleButton从其他事件中取消选中 T 。

是否可以取消选中ToggleButtonFrom this StoryBoard

如果是这样,我是否需要验证它是否已经选中/未选中?

4

2 回答 2

1

您可以像这样使用 ObjectAnimationUsingKeyFrames:

<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="YourToggleButton" Storyboard.TargetProperty="(ToggleButton.IsChecked)">
    <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False" />
</ObjectAnimationUsingKeyFrames>

您不需要检查它是否已被检查,因为当它已经为 false 时将其设置为 false 应该没有副作用。

于 2009-10-23T17:11:37.417 回答
1

您应该使用BooleanAnimations动画布尔值:

     <BooleanAnimationUsingKeyFrames Storyboard.TargetName="YourToggleButton" Storyboard.TargetProperty="IsChecked">
           <DiscreteBooleanKeyFrame Value="False" KeyTime="0:0:0"/>
     </BooleanAnimationUsingKeyFrames>

您可以将您DoubleAnimations的设置ToggleButton.TriggersEventTriggersonRoutedEvents CheckedUnckecked,然后只需检查/取消选中切换按钮,BooleanAnimationToggleButton自动运行双重动画以更改堆栈面板的高度

于 2014-09-07T12:27:34.333 回答