最近我的项目需要从窗口的右到左显示一个控件,如果窗口大小完全没有变化,则在动画完成后,该控件将被删除,如下所示:
private void DanmakuAnimation_Completed_Normally(object sender, EventArgs e)
{
this._parent.Children.Remove(this);
}
//some code...
animation.Completed += DanmakuAnimation_Completed_Normally;
但是当动画设置窗口大小时,我需要退订当前的Completed事件并订阅一个新事件以扩展动画,我尝试了MSDN所说的:
private void DanmakuAnimation_Completed_Extend(object sender, EventArgs e)
{
//extend animation code...
}
animation.Completed -= DanmakuAnimation_Completed_Normally;
animation.Completed += DanmakuAnimation_Completed_Extend;
但是它不起作用,animation
在完成后仍会调用DanmakuAnimation_Completed_Normally
(动画运行时我取消订阅并重新订阅),所以我如何取消订阅并重新订阅新事件动画运行时如何处理动画?