如何在动画制作期间删除DoubleAnimation的Completed事件

时间:2019-05-01 08:09:26

标签: c# wpf animation

最近我的项目需要从窗口的右到左显示一个控件,如果窗口大小完全没有变化,则在动画完成后,该控件将被删除,如下所示:

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(动画运行时我取消订阅并重新订阅),所以我如何取消订阅并重新订阅新事件动画运行时如何处理动画?

0 个答案:

没有答案