Как добавить EventHandler в конец DoubleAnimation? - PullRequest
2 голосов
/ 11 февраля 2012

Я делаю DoubleAnimation, не используя StoryBoard, и пытаюсь применить обработчик событий к его завершению (в противном случае код, который я пытаюсь сделать, происходит до окончания анимации)

Я использовал:

da = new DoubleAnimation(40,20,  new Duration(TimeSpan.FromSeconds(2)));

((PerspectiveCamera)_Main3D.Camera).
    BeginAnimation(PerspectiveCamera.FieldOfViewProperty, da);

da.Completed += new EventHandler(Story_Completed);

Все же это событие никогда не происходит.

1 Ответ

4 голосов
/ 11 февраля 2012

Вы присоединяете обработчик события после , когда вы запускаете анимацию. Если анимация короткая, возможно, она заканчивается до того, как будет назначен обработчик Completed. Также возможно, что объект анимации не реагирует на назначение обработчика во время запуска анимации.

Попробуйте это:

da = new DoubleAnimation(40,20,  new Duration(TimeSpan.FromSeconds(2)));

da.Completed += new EventHandler(Story_Completed);

((PerspectiveCamera)_Main3D.Camera).
    BeginAnimation(PerspectiveCamera.FieldOfViewProperty, da);

... добавить обработчик Competed перед запуском анимации ...

...