Это вызвано нажатием на расширенную область Frame
.
Кажется, что событие MouseUp
запускает событие MouseLeave
/ MouseEnter
. MouseLeave
запускает анимацию для сжатия кадра, что ставит в очередь событие «Сжатие раскадровки», а MouseEnter
ставит в очередь анимацию для расширения кадра, которое ставит в очередь событие «Расширить раскадровку». Сжимая / расширяя фрейм, MouseEnter
/ MouseLeave
снова запускаются, и анимации снова запускаются. Эти двое продолжают бесконечно стрелять, пока вы не переместите мышь из магической области, которая занята только когда рамка расширена.
Вы можете просмотреть задержку в замедленном режиме, добавив BeginTime="00:00:02"
к своим раскадровкам, чтобы добавить 2-секундную задержку, и вы можете проверить события MouseEnter
/ MouseLeave
, добавив метод, который записывает строку в вывод в событиях MouseEnter
/ MouseLeave
кадра.
Что касается исправления, я не уверен, что лучший способ сделать это. Возможно, попробуйте использовать события MouseEnter
/ MouseLeave
для ручного запуска событий после 1-секундной задержки, при условии, что событие все еще должно обрабатываться.
Например, если событие MouseUp
вызывает события MouseLeave
и MouseEnter
, то MouseLeave
должно поставить в очередь анимацию свертывания, но задержать секунду и проверить, действительно ли мышь находится над объектом на секунду позже. , Если нет, отмените событие сброса. Это может привести к тому, что событие MouseLeave
не запустит свою анимацию, что означает, что оно не будет бесконечно помещать анимацию в очередь, пока мышь не будет перемещена из области расширенного фрейма.