2009-10-23 6 views
1

J'ai une animation qui développe/réduit certains StackPanel s, dans la fenêtre il y a quelques ToggleButton s qui doivent être décochés quand le StackPanel est réduit. J'ai l'animation comme ceci:Cocher/décocher un ToggleButton d'un StoryBoard dans WPF

<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> 

Ce cache le StackPanel, mais je dois décocher T oggleButton d'autres événements.

Est-il possible de décocher le ToggleButton De ce StoryBoard?

Si oui, dois-je vérifier si elle a déjà été cochée/décochée?

Répondre

1

Vous pouvez utiliser un ObjectAnimationUsingKeyFrames comme ceci:

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

Vous ne devriez pas avoir besoin de vérifier si elle est déjà cochée depuis la mise à faux quand il est déjà faux ne devrait pas avoir d'effets secondaires.

+0

Lorsque le ToggleButton est désélectionné, il ne fait rien et quand il est coché, il renvoie une erreur "Can not a La propriété nimate 'IsChecked' sur 'System.Windows.Controls.Primitives.ToggleButton' avec 'System.Windows.Media.Animation.ObjectAnimationUsingKeyFrames' "Est-ce que je fais quelque chose de mal? – Luis

1

Vous devez utiliser BooleanAnimations pour animer les valeurs booléennes:

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

Vous pouvez mettre votre DoubleAnimations en ToggleButton.Triggers comme EventTriggers sur RoutedEventsChecked et Unckecked, puis il suffit de cocher/décocher le bouton à bascule avec BooleanAnimation et ToggleButton courrez automatiquement les doubles animations pour modifier la hauteur du panneau de la pile

Questions connexes