0
Je souhaite animer la position rectangle x de mon code (la position x étant seulement déterminée au moment de l'exécution).Dans WPF, comment animer la propriété X de l'UIEllement à partir du code derrière?
J'ai obtenu le code suivant:
KeySpline easeOut = new KeySpline(0, 1, 0.3, 1);
Storyboard sb = new Storyboard();
DoubleAnimationUsingKeyFrames da1 = new DoubleAnimationUsingKeyFrames();
SplineDoubleKeyFrame keyFrame1 = new SplineDoubleKeyFrame();
GeneralTransform generalTransform = rect4.TransformToVisual(this);
Point point = generalTransform.Transform(new Point());
keyFrame1.Value = point.X;
keyFrame1.KeySpline = easeOut;
da1.KeyFrames.Add(keyFrame1);
sb.Children.Add(da1);
Storyboard.SetTarget(da1, rect);
Storyboard.SetTargetProperty(da1, new PropertyPath("What is the path?"));
sb.Begin();
La chose que je ne sais pas est ce qu'il faut mettre pour la PropertyPath ?!
Mais ce n'est pas à l'intérieur de la toile. Comme je l'ai déjà mentionné, je ne détermine que la position X pendant l'exécution de l'application, je pourrais changer la valeur keyFrame pendant l'exécution, mais avec cette approche, le code serait éparpillé autour de mon application, ce que je ne veux pas. – Vitalij
Comment déterminez-vous cela? Si vous placez un objet dans Grid, StackPanel etc, il n'aura pas de coordonnées. Pour silverlight j'utilise (UIElement.RenderTransform). (CompositeTransform.TranslateX) que je crois que vous devez changer en TranslateTransform (aussi il doit être alocated "new TranslateTransform"). Il utilise des valeurs relatives. –