Цветная анимация не работает - PullRequest
4 голосов
/ 09 мая 2011

У меня есть кнопка с именем "b", фон которой я хочу изменить с черного на белый, но она не работает.

Ошибка:

Объект анимации 'System.Windows.Media.Animation.ColorAnimation' нельзя использовать для анимации свойства 'Фон', поскольку он имеет несовместимый тип '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 ]

19 голосов
/ 14 сентября 2011

Стоит отметить, что ту же проблему можно решить в XAML с помощью выражения формы:

<ColorAnimation Duration="0:0:0.2" From="Black" To="White"
      Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
      Storyboard.TargetName="Body" />
7 голосов
/ 09 мая 2011

Фон имеет тип Brush, который нельзя анимировать с помощью ColorAnimaion. Однако SolidColorBrush имеет свойство Color, поэтому вы можете сделать что-то вроде:

Storyboard.SetTargetProperty(changeColor, new PropertyPath("Background.Color"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...