J'ai la méthode suivante qui fonctionne. Je voudrais le mettre dans une méthode utilitaire qui renvoie un Storyboard. Chaque tentative que j'ai faite pour convertir ceci en Storyboard a échoué, et j'ai passé beaucoup de temps à faire des recherches. Je suis prêt à abandonner à moins que quelqu'un vienne à mon secours.Convertir le code d'animation C# en storyboard
Voici le code que je veux convertir:
public override void Begin(FrameworkElement element, int duration)
{
var transform = new ScaleTransform();
element.LayoutTransform = transform;
var animation = new DoubleAnimation
{
From = 1,
To = 0,
Duration = TimeSpan.FromMilliseconds(duration),
FillBehavior = FillBehavior.Stop,
EasingFunction = new QuinticEase { EasingMode = EasingMode.EaseIn }
};
transform.BeginAnimation(ScaleTransform.ScaleXProperty, animation);
transform.BeginAnimation(ScaleTransform.ScaleYProperty, animation);
}
Ainsi, au lieu des deux BeginAnimation() appelle, je veux revenir un storyboard donc tout ce que je dois faire est d'appeler storyboard.Begin(). Je sais que ça ne devrait pas être si difficile à faire, mais je ne comprends pas.
Merci.
EDIT: En réponse aux suggestions de HB, j'ai essayé le code suivant, qui ne fonctionne toujours pas:
private static Storyboard CreateAnimationStoryboard(FrameworkElement element, int duration)
{
var sb = new Storyboard();
var scale = new ScaleTransform(1, 1);
element.RenderTransform = scale;
element.RegisterName("scale", scale);
var animation = new DoubleAnimation
{
From = 1,
To = 0,
Duration = TimeSpan.FromMilliseconds(duration),
FillBehavior = FillBehavior.Stop,
EasingFunction = new QuinticEase { EasingMode = EasingMode.EaseIn }
};
sb.Children.Add(animation);
Storyboard.SetTarget(animation, scale);
Storyboard.SetTargetProperty(animation, new PropertyPath(ScaleTransform.ScaleXProperty));
return sb;
}
Je sais que je n'animais l'axe X - veulent juste obtenir quelque chose à travailler d'abord .
Oui, j'en ai eu beaucoup. Peut-être que les détails des complications que vous avez mentionnées pourraient être utiles? –
@DanThomas: [This] (http://stackoverflow.com/a/4567058/546730) sonne comme le problème. –
Merci, mais ce problème particulier est pour si vous créez un élément de cadre dans le code, ce que je ne fais pas. L'élément framework existe déjà via xaml, et j'appelle cette méthode via un comportement attaché. D'autres idées? :) –