gpt4 book ai didi

c# - WPF StoryBoard.Completed 事件未触发

转载 作者:IT王子 更新时间:2023-10-29 04:52:26 25 4
gpt4 key购买 nike

我在关闭主窗口之前有一个动画,如下面的代码所示。问题是 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 对象。请参阅 Completed 中的备注部分:

Although this event handler appears to be associated with a timeline, it actually registers with the Clock created for this timeline. For more information, see the Timing Events Overview.

关于c# - WPF StoryBoard.Completed 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14183121/

25 4 0