私はストーリーボードでアニメーションを管理しようとしています。これは点滅するラベルであり、この効果を達成するためにこのコードを使用しました(アニメーションでは、コードビハインドでのみ動作することを好みます):ストーリーボードを宣言します。
public partial class Example: Page
{
public Storyboard LabelStoryboard=new Storyboard();
}
次に、アニメーションを起動します。
private void FlashWinLabel(){
DoubleAnimation Flash= new DoubleAnimation();
Flash.Duration = TimeSpan.FromMilliseconds(400);
Flash.From = 1.0d;
Flash.To = 0.0d;
Flash.RepeatBehavior = RepeatBehavior.Forever;
WinLabel.BeginAnimation(Label.OpacityProperty, Flash);
SolidColorBrush myAnimatedBrush = new SolidColorBrush();
myAnimatedBrush.Color = Colors.White;
WinLabel.Foreground = myAnimatedBrush;
this.RegisterName("MyAnimatedBrush", myAnimatedBrush);
ColorAnimation LabelColorAnimation = new ColorAnimation();
LabelColorAnimation.To = Colors.GreenYellow;
LabelColorAnimation.Duration = TimeSpan.FromMilliseconds(200);
LabelColorAnimation.RepeatBehavior = RepeatBehavior.Forever;
LabelColorAnimation.AutoReverse = true;
Storyboard.SetTargetName(LabelColorAnimation, "MyAnimatedBrush");
Storyboard.SetTargetProperty(
LabelColorAnimation, new PropertyPath(SolidColorBrush.ColorProperty));
LabelStoryboard.Children.Add(LabelColorAnimation);
WinLabel.BeginStoryboard(LabelStoryboard);
}
この時点まではすべて機能しますが、画面上のボタンを押してストーリーボードを停止しようとすると問題が発生します。
private void StopStoryBoard()
{
LabelStoryboard.Stop();
}
LabelStoryboard は null ではありません。コード .Stop() が実行されますが、アニメーションは停止しません。コードの何が問題になっていますか?