Цвет фона анимации границы в Silverlight, приоритет состояния в VisualStateGroups

Это вопрос Silverlight/XAML.

Не уверен, что я делаю неправильно, это, кажется, выдает ошибку:

<ColorAnimation 
Storyboard.TargetName="btnRemoveBorder" 
Storyboard.TargetProperty="Background" 
To="#FFDEBA29" 
Duration="0" />

2-й вопрос... довольно запутанный с выбранными и сфокусированными состояниями. Может ли одно государство иметь приоритет над другим?

1 ответ

Решение

Фон - это не цвет, а кисть, поэтому его нельзя анимировать напрямую с помощью ColorAnimation. Вместо этого попробуйте следующее.

<ColorAnimation 
    Storyboard.TargetName="btnRemoveBorder" 
    Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" 
    To="#FFDEBA29" 
    Duration="0" />

Что касается вопроса VisualStateManager, одно состояние из каждой группы состояний может быть активным. Так, например, в случае кнопки она может находиться как в состоянии "сфокусировано", так и в состоянии "нажата". По этой причине вы должны попытаться спроектировать свои состояния и шаблоны управления таким образом, чтобы не зависеть от того, какое состояние станет активным в первую очередь. Обычно это означает, что вы не должны анимировать один и тот же элемент / свойство в двух разных группах состояний. Но с технической точки зрения, ничто не мешает вам сделать это. Независимо от того, в каком состоянии находится элемент управления до последнего (с использованием метода VisualStateManager.GoToState), он будет иметь приоритет.

Другие вопросы по тегам