1

这是一个 silverlight/XAML 问题。

不知道我做错了什么,这似乎引发了错误:

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

第二个问题是......与 Selected 和 Focused 状态相当混淆。一个州可以优先于另一个州吗?

4

1 回答 1

5

背景不是颜色,而是画笔,这就是为什么不能直接使用 ColorAnimation 对其进行动画处理的原因。而是尝试以下操作。

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

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

于 2010-09-08T02:10:39.137 回答