时间不够,因为你一点关闭,动画刚要执行,THISE.CLOSE()也执行了。
教一个比较笨的方法,再CLOSE事件里面不写THIS.CLOSE(),先写e.Cancle=true;再定义一个时钟,时钟的INTERVAL=动画要执行的时间。然后close事件里面开启时钟。而时钟事件里面写上THIS.CLOSE();跟timer1.enable=flase;
那么执行CLOSEWINDOW_CLICK的时候,就会间隔INTERVAL的时间,这时间让你执行动画,然后执行THIS.CLOSE();关闭窗口。
比较简单的方法吧?^_^
反转动画可用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();
}
不知道这是你需要的不
一句话:用异步解决。