同步动画

我有这样的事情:

scaleTransform.BeginAnimation(ScaleTransform.ScaleXProperty, shrinkAnimation);
scaleTransform.BeginAnimation(ScaleTransform.ScaleYProperty, shrinkAnimation);
MyDialog.Show();

动画并行运行(x和y一起缩小),但因为BeginAnimation是异步调用,所以Show()方法在动画仍在运行时执行(假设shrinkAnimation运行1秒)。

如何在调用Show()之前等待动画完成?

谢谢!


您可以使用具有完成事件的Storyboard ,而不是BeginAnimation方法。 这里有一个例子,设置不透明度,但它是一样的概念:

DoubleAnimation animation = new DoubleAnimation(0.0, new Duration(TimeSpan.FromSeconds(1.0)));

Storyboard board = new Storyboard();
board.Children.Add(animation);

Storyboard.SetTarget(animation, MyButton);
Storyboard.SetTargetProperty(animation, new PropertyPath("(Opacity)"));

board.Completed += delegate
{
    MessageBox.Show("DONE!");
};

board.Begin();
链接地址: http://www.djcxy.com/p/44571.html

上一篇: synchronous animation

下一篇: When do browsers start to render partially transmitted HTML?