Как использовать обработчик событий Completed в silverlight - PullRequest
0 голосов
/ 09 сентября 2010

Onmouseover перемещает мое изображение на 50px (storyboard1). Onmouseout перемещает мое изображение обратно на 50px (storyboard2).

Моя проблема в том, что, если вы быстро наведите курсор мыши, а затем вернетесь назад, анимация заикается, потому что storyboard1 не 'После завершения анимации он останавливается, когда я нахожу мышку.Как я могу использовать обработчик завершенных событий или какой-либо другой метод, чтобы заставить storyboard1 полностью завершиться до того, как будет разрешено начало storyboard2?

Я попытался подключить обработчик завершенных событий, который создает метод в моем коде C #.В этом коде я попытался установить глобальное bool в значение true, если раскадровка завершена, а затем в моем событии мышки я сказал, что если мой bool не соответствует истине, тогда я не являюсь storyboard2, что не сработало.

1 Ответ

1 голос
/ 10 сентября 2010

Примечание:

Первая анимация не является фактической остановкой, просто изменения значений перезаписываются раскадровкой, которая запускается последней.Раскадровки работают до тех пор, пока не будут явно остановлены, сохраняя последние значения.

Решение:

Чтобы избежать заикания, необходимо убедиться, что в раскадровке onmouseout нет начальных значений.Только окончательные значения.Затем он будет интерполироваться обратно в начальную точку, где бы он ни находился, не переходить в конечную точку и затем анимироваться обратно.

Если вы не можете исправить это самостоятельно, пожалуйста, опубликуйте свой Xaml, и я опубликую исправление.

Следующая проблема:

Тогда проблема с этим новым сценариембудь то, что время анимации фиксировано, поэтому анимация назад будет выглядеть медленнее (например, для того, чтобы вернуться из половины пути назад, потребуется столько же времени, сколько и из полностью назад).

Решение этой проблемыдругой вопрос (где ответ предполагает динамическое изменение скорости воспроизведения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...