У меня есть простая карта и квадрат, который я хотел бы перейти от точки А до D, через B и C. Я объявлен метод Animate:C# анимация, используя TranslateTransform и DoubleAnimation
public void Animate(double[] FirstPoint, double[] SecondPoint, Image img)
{
double x1 = FirstPoint[0];
double x2 = SecondPoint[0];
double y1 = FirstPoint[1];
double y2 = SecondPoint[1];
TranslateTransform trans = new TranslateTransform();
img.RenderTransform = trans;
DoubleAnimation anim1 = new DoubleAnimation(y1, y2, TimeSpan.FromSeconds(1));
DoubleAnimation anim2 = new DoubleAnimation(x1, x2, TimeSpan.FromSeconds(1));
trans.BeginAnimation(TranslateTransform.YProperty, anim1);
trans.BeginAnimation(TranslateTransform.XProperty, anim2);
}
Основная проблема заключается в том, что, когда я использую эту методу, как это:
obj.Animate(obj.A, obj.B, Car);
obj.Animate(obj.B, obj.C, Car);
obj.Animate(obj.C, obj.D, Car);
... там анимация отображается только от точки C до D. когда я добавил MessageBox.Show
к Animate
методу, он отображается анимацией правильно.
Я чувствую, что не могу полностью понять концепцию использования этих классов для анимации объектов. Есть предположения?
Используйте раскадровку, чтобы стек анимации (указать соответствующий 'BeginTime' для анимации). –