ストーリーボードを介して WP7 アプリにいくつかのアニメーションを導入しました。イベントが発生し、コード ビハインドでアニメーションを実行するコードを呼び出すと、必要な動作が正確に得られます。しかし、2 回目のトリガーを行うと、これに関連するデリゲート コードが 2 回呼び出されているようです。そして、同じイベントをトリガーし、デリゲート コードが 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>
何か案は?