Dim
Dim

Reputation: 4837

Translate Transform and rotation in WPF

the translate works fine, but there is no rotation, can you please help me?

TranslateTransform trans = new TranslateTransform();

Pointer.RenderTransform = trans;

DoubleAnimation animX = new DoubleAnimation(fromX, toX, TimeSpan.FromMilliseconds(325));
DoubleAnimation animY = new DoubleAnimation(fromY, toY, TimeSpan.FromMilliseconds(325));

DoubleAnimation rotateBy = new DoubleAnimation(0, 90, TimeSpan.FromMilliseconds(325));

animX.EasingFunction = new SineEase { EasingMode = EasingMode.EaseInOut };
animY.EasingFunction = new SineEase { EasingMode = EasingMode.EaseInOut };

animX.Completed += new EventHandler(myanim_Completed);
trans.BeginAnimation(TranslateTransform.XProperty, animX);
trans.BeginAnimation(TranslateTransform.YProperty, animY);

trans.BeginAnimation(RotateTransform.AngleProperty, rotateBy);

Upvotes: 0

Views: 1726

Answers (1)

Eli Arbel
Eli Arbel

Reputation: 22747

TranslateTransform doesn't have an Angle property. You should use a TransformGroup:

var group = new TransformGroup();
var trans = new TranslateTransform();
group.Children.Add(trans);
var rotate = new RotateTransform();
group.Children.Add(rotate);

Pointer.RenderTransform = group;

// the rest of the code is fine; only the last line needs fixing:

rotate.BeginAnimation(RotateTransform.AngleProperty, rotateBy);

You should also look into using Storyboard to group your animations.

Upvotes: 3

Related Questions