7

私はこれを持っています:

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

アニメーションは正しく並行して実行されます (x と y が一緒に収縮します)BeginAnimationが、非同期呼び出しであるためShow()、アニメーションがまだ実行されている間にメソッドが実行されます ( shrinkAnimation1 秒間実行するとします)。

を呼び出す前にアニメーションが完了するのを待つにはどうすればよいShow()ですか?

ありがとう!

4

1 に答える 1

4

そのメソッド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();
于 2010-02-04T21:37:03.140 に答える