我通过情节提要在我的 WP7 应用程序中引入了一些动画。这一切都在第一次按预期工作 - 事件发生,我调用代码在后面的代码中做动画,我得到了我想要的行为。但是当我第二次触发时,就像涉及到的委托代码被调用了两次。然后我触发了相同的事件,委托代码被调用了 3 次。其累积。
调用的代码如下
private void WeekForward()
{
FadeTitleOut.Begin();
FadeTitleOut.Completed += delegate
{
StartingMonday = StartingMonday.AddDays(7);
BuildPage();
FadeTitleIn.Begin();
};
}
FadeTitleOut 和 FadeTitleIn 是我的故事板,动画效果很好。只是事件第一次发生 StartingMonday 时增加了 7 天。下次事件触发时,它会增加 14 天,依此类推。
我是否对我的委托代码做了一些非常愚蠢的事情?
可能应该补充一点,我在后面的代码中完成了大部分工作,包括动态地生成和删除控件,但是情节提要是在 XAML 中定义的,它们引用了在 XAML 中定义的控件(而不是在后面的代码)
故事板 XAML 是
<phone:PhoneApplicationPage.Resources>
<Storyboard x:Name="FadeTitleOut">
<DoubleAnimation Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="Opacity" From="1.0" To="0.0" Duration="0:0:0.3" />
</Storyboard>
<Storyboard x:Name="FadeTitleIn">
<DoubleAnimation Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0" Duration="0:0:0.3" />
</Storyboard>
</phone:PhoneApplicationPage.Resources>
有任何想法吗?