从WPF中的StoryBoard检查/取消选中ToggleButton

时间:2009-10-23 17:06:36

标签: c# wpf xaml storyboard togglebutton

我有一个动画可以展开/折叠一些StackPanel,在窗口中有一些ToggleButtonStackPanel折叠时必须取消选中。我有这样的动画:

<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

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

2 个答案:

答案 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 CheckedUnckecked,然后点击/取消确认切换按钮使用BooleanAnimationToggleButton将自动运行双动画来更改stackpanel的高度