WPF - синхронная анимация

У меня есть что-то это:

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

Анимации работают правильно параллельно (X и Y уменьшаются вместе), но потому что BeginAnimation асинхронный вызов, Show() метод выполняется, в то время как анимация все еще работает (предположить shrinkAnimation выполнения в течение 1 секунды).

Как я могу ожидать анимаций для завершения перед вызовом Show()?

Спасибо!

7
задан Dave Clemmer 18 September 2011 в 17:55
поделиться

1 ответ

Вы можете использовать Раскадровка с завершенным событием вместо метода 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();
4
ответ дан 7 December 2019 в 14:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: