我试图在单击按钮时为按钮的背景颜色设置动画。
我遇到了一个问题,实际上是抓住了定义按钮背景的画笔,以便我可以对其进行动画处理。它是一个线性渐变画笔。
我遇到的问题是我无法找到一种实际动画颜色的方法。当情节提要开始时,它会抛出一个错误,告诉我“无法在不可变对象实例上设置动画 '(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();
}