C# WPF:动画-从动画的代码隐藏中访问按钮背景笔刷

C# WPF:动画-从动画的代码隐藏中访问按钮背景笔刷,c#,.net,wpf,animation,background,C#,.net,Wpf,Animation,Background,我试图在单击按钮时设置按钮背景色的动画 我遇到了一个问题,实际上抓取了定义按钮背景的笔刷,这样我就可以为它设置动画。这是一个线性半径笔刷 我遇到的问题是,我无法找到一种方法来实际设置颜色的动画。当故事板开始时,它抛出一个错误,告诉我无法在不可变对象实例上设置“0”的动画 除此之外,我认为我做得不对。最终的结果是将背景从当前颜色设置为红色,然后再设置为红色,直到满足某些条件 总的问题是……我的方法正确吗?有没有更好的方法来设置按钮背景色的动画 private void RoundedButton_

我试图在单击按钮时设置按钮背景色的动画


我遇到了一个问题,实际上抓取了定义按钮背景的笔刷,这样我就可以为它设置动画。这是一个线性半径笔刷

我遇到的问题是,我无法找到一种方法来实际设置颜色的动画。当故事板开始时,它抛出一个错误,告诉我无法在不可变对象实例上设置“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();
}

我遇到了一个问题,实际上是抓刷子。。。您遇到了什么问题?我将更新代码。它应该是LinearGradientBrush而不是SolidColorBrush。这仍然不能告诉我们遇到问题意味着什么。你到底有什么问题?奇怪…我的部分帖子被删了。我会更新抱歉。更新后…基本上我认为我的方法是错误的,但我看不到更好的方法来设置按钮背景动画,并且仍然能够停止动画以恢复到其原始背景