2017-10-18 8 views
0

J'ai le storyboard suivant qui est déclenché de la sorte;WPF Modifier la propriété après l'exécution du storyboard

Storyboard s = (Storyboard) myrect.FindResource("sb"); 
s.Begin(); 

-

<Storyboard BeginTime="0" Duration="Forever" x:Key="sb" > 
    <DoubleAnimation Storyboard.TargetName="myrect" 
         Storyboard.TargetProperty="Height" From="0" To="{Binding ElementName=myrect, Path=ActualHeight}" 
         Duration="0:0:0.2" BeginTime="0:0:0"/> 
</Storyboard> 

Mais comment pour que je puisse mettre en myrect.Height = 0; puis je puis annuler cette (sur une presse de bouton)? Je comprends que cela ne fonctionne pas car l'animation est toujours en cours d'exécution. J'ai essayé FillBehavior="Stop" mais cela provoque la hauteur de revenir à 0 à la fin de l'animation.

Je peux à nouveau FindResource et arrêter le Storyboard mais je me demandais s'il y avait un moyen de dire au Storyboard de terminer mais de laisser la Hauteur à la nouvelle valeur?

NOTE: Le story-board peut être réexécuté après cela, donc je ne crois pas que la suppression complète du story-board est une option.

+0

Définissez FillBehavior sur Stop et ajoutez un gestionnaire Terminé qui définit la valeur de la propriété sur la valeur souhaitée. – Clemens

+0

Avez-vous lu ça? https://docs.fr.microsoft.com – mm8

Répondre

0
myrect.BeginAnimation(HeightProperty, null); 
myrect.Width = 0;