2

私はストーリーボードでアニメーションを管理しようとしています。これは点滅するラベルであり、この効果を達成するためにこのコードを使用しました(アニメーションでは、コードビハインドでのみ動作することを好みます):ストーリーボードを宣言します。

    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() が実行されますが、アニメーションは停止しません。コードの何が問題になっていますか?

4

1 に答える 1