动画Silverlight中边框的背景颜色,VisualStateGroups中的状态优先级

时间:2010-09-08 02:03:31

标签: silverlight xaml visualstategroup

这是一个silverlight / XAML问题。

不确定我做错了什么,这似乎引发了一个错误:

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

第二个问题是......与选定和聚焦状态相混淆。一个州可以优先于另一个吗?

1 个答案:

答案 0 :(得分:5)

背景不是颜色,而是画笔,这就是无法使用ColorAnimation直接制作动画的原因。请尝试以下方法。

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

关于VisualStateManager问题,每个州组中的一个州可以是活动的。因此,例如,在Button的情况下,它可以处于聚焦状态和按下状态。出于这个原因,您应该尝试以不依赖于哪个状态首先变为活动状态的方式设计状态和控制模板。通常这意味着您不应在两个不同的状态组中为相同的元素/属性设置动画。但从技术上讲,没有什么能阻止你这样做。控件转到最后的状态(使用VisualStateManager.GoToState方法)将优先。