#c_sharp #wpf
Проблема заключается в том что скрытие формы выполняется сразу, а не после анимации.
Как добиться того что бы после окончания анимации выполнялось скрытие формы
DoubleAnimation HideBlindWindow = new DoubleAnimation(SystemParameters.PrimaryScreenWidth
- Blind.Width, SystemParameters.PrimaryScreenWidth, TimeSpan.FromMilliseconds(150),
FillBehavior.HoldEnd);
DoubleAnimation HideTimeWindow = new DoubleAnimation(0.9, 0, TimeSpan.FromMilliseconds(140),
FillBehavior.HoldEnd);
blind.BeginAnimation(Window.LeftProperty, HideBlindWindow);
timeWindow.BeginAnimation(Window.OpacityProperty, HideTimeWindow);
// как сделать чтобы эти действия выполнялись после окончания анимации
blind.Hide();
timeWindow.Hide();
Ответы
Ответ 1
Используйте Completed event для анимации. Подробнее на MSDN. В вашем случае: anim.Completed += new EventHandler(anim_Completed); private void anim_Completed(object sender, EventArgs e) { //здесь ваш код после завершения анимации }Ответ 2
Ваша анимация длится 150 миллисекунд? Ну так подождите эти самые 150 миллисекунд перед тем, как выходить: blind.BeginAnimation(Window.LeftProperty, HideBlindWindow); timeWindow.BeginAnimation(Window.OpacityProperty, HideTimeWindow); await Task.Delay(150); blind.Hide(); timeWindow.Hide(); Вам придётся переделать ваш метод в async.
Комментариев нет:
Отправить комментарий