WPF 如何实现先执行完动画再关闭窗口

2025-01-25 08:27:56
推荐回答(3个)
回答1:

时间不够,因为你一点关闭,动画刚要执行,THISE.CLOSE()也执行了。
教一个比较笨的方法,再CLOSE事件里面不写THIS.CLOSE(),先写e.Cancle=true;再定义一个时钟,时钟的INTERVAL=动画要执行的时间。然后close事件里面开启时钟。而时钟事件里面写上THIS.CLOSE();跟timer1.enable=flase;
那么执行CLOSEWINDOW_CLICK的时候,就会间隔INTERVAL的时间,这时间让你执行动画,然后执行THIS.CLOSE();关闭窗口。
比较简单的方法吧?^_^

回答2:

反转动画可用rotate



后台动画完成后执行关闭,可用Completed事件
private void CloseWindow_Click(object sender, RoutedEventArgs e)
{
DoubleAnimation rotation = new DoubleAnimation(-360, TimeSpan.FromSeconds(0.2));
rotation.Completed += new EventHandler(rotation_Completed);
rotation.AutoReverse = false;
rotation.FillBehavior = FillBehavior.HoldEnd;
window.rotate.BeginAnimation(RotateTransform.AngleProperty, rotation);
}

void rotation_Completed(object sender, EventArgs e)
{
this.Close();
}

不知道这是你需要的不

回答3:

一句话:用异步解决。