1

ボタンをクリックしたときにボタンの背景色をアニメーション化しようとしています。

ボタンの背景を定義するブラシを実際に取得して、アニメーション化できるようにするという問題が発生しています。linearGradientBrush です。

私が直面している問題は、実際に色をアニメーション化する方法がわからないことです。ストーリーボードが開始されると、「不変オブジェクト インスタンスで '(0)' をアニメーション化できません」というエラーがスローされます。

これに加えて、私はこれを正しく行っていないと思います。最終結果は、背景を現在の色から赤にアニメーション化し、何らかの条件が満たされるまで元に戻すことです。

全体的な質問は...私のアプローチは正しいですか?ボタンの背景色をアニメーション化するより良い方法はありますか?

private void RoundedButton_Click(object sender, RoutedEventArgs e)
{
    //THIS OBVIOUSLY WON'T WORK BUT GIVES AN IDEA OF WHAT I'M TRYING TO ACCOMPLISH
    LinearGradientBrush recBrush =   ((SharedLibrary.Wpf.Controls.RoundedButton)sender).Background as LinearGradientBrush;

    ColorAnimation pulserAnimation = new ColorAnimation(Colors.Red, new Duration(new TimeSpan(0, 0, 1)));
    pulserAnimation.AutoReverse = true;
    pulserAnimation.RepeatBehavior = RepeatBehavior.Forever;

    Storyboard.SetTarget(pulserAnimation, recBrush);
    Storyboard.SetTargetProperty(pulserAnimation, new    PropertyPath(SolidColorBrush.ColorProperty));

    Storyboard sb = new Storyboard();

    //Add the animations to the new Storyboard
    sb.Children.Add(pulserAnimation);

    //run the animation
    sb.Begin();
}
4

0 に答える 0