彩色动画不起作用

时间:2011-05-09 19:17:43

标签: .net wpf vb.net silverlight animation

我有一个名为“b”的按钮,我想将背景从黑色变为白色,但它不起作用。

错误:

  

'System.Windows.Media.Animation.ColorAnimation'动画对象不能用于动画属性'Background',因为它是不兼容的类型'System.Windows.Media.Brush'。

我的代码:

Dim changeColor As New Animation.ColorAnimation

changeColor.From = Colors.Black
changeColor.To = Colors.White
changeColor.Duration = TimeSpan.FromSeconds(0.2)

Animation.Storyboard.SetTarget(changeColor, b)
Animation.Storyboard.SetTargetProperty(changeColor, New PropertyPath(BackgroundProperty))

Dim sb As New Animation.Storyboard
sb.Children.Add(changeColor)
sb.Begin()

有任何想法吗?

2 个答案:

答案 0 :(得分:19)

值得注意的是,使用表单形式的表达式可以在XAML中解决同样的问题:

<ColorAnimation Duration="0:0:0.2" From="Black" To="White"
      Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
      Storyboard.TargetName="Body" />

答案 1 :(得分:7)

背景是Brush类型,无法使用ColorAnimaion进行动画处理。但是,SolidColorBrush具有Color属性,因此您可以执行以下操作:

Storyboard.SetTargetProperty(changeColor, new PropertyPath("Background.Color"));