WPF StoryBoard.Completed事件未触发

关闭主窗口之前我有一个动画,如下面的代码所示。 问题是StoryBoard.Completed没有触发。 是什么原因引起了这个?

 DoubleAnimation dblAnimX = new DoubleAnimation(1.0, 0.0, new Duration(TimeSpan.FromSeconds(0.5))); dblAnimX.SetValue(Storyboard.TargetProperty, this); DoubleAnimation dblAnimY = new DoubleAnimation(1.0, 0.0, new Duration(TimeSpan.FromSeconds(0.5))); dblAnimY.SetValue(Storyboard.TargetProperty, this); Storyboard story = new Storyboard(); Storyboard.SetTarget(dblAnimX, this); Storyboard.SetTarget(dblAnimY, this); Storyboard.SetTargetProperty(dblAnimX, new PropertyPath("RenderTransform.ScaleX")); Storyboard.SetTargetProperty(dblAnimY, new PropertyPath("RenderTransform.ScaleY")); story.Children.Add(dblAnimX); story.Children.Add(dblAnimY); story.Begin(this); story.Completed += (o, s) => { this.Close(); }; 

在调用Begin之前添加Completed处理程序:

 story.Completed += (o, s) => Close(); story.Begin(this); 

此行为的原因是Completed处理程序附加到Begin期间创建的内部Clock对象。 请参阅已完成中的备注部分:

虽然此事件处理程序似乎与时间轴相关联,但它实际上是为为此时间轴创建的时钟注册的。 有关更多信息,请参阅时序事件概述。