我有两个故事板如下。
<Storyboard x:Name="ToRed">
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" >
<EasingColorKeyFrame KeyTime="0" Value="Transparent"/>
<EasingColorKeyFrame KeyTime="0:0:0.3" Value="Red"/>
<EasingColorKeyFrame KeyTime="0:0:0.9" Value="Transparent"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Name="ToGreen">
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" >
<EasingColorKeyFrame KeyTime="0" Value="Transparent"/>
<EasingColorKeyFrame KeyTime="0:0:0.3" Value="#FF14A514"/>
<EasingColorKeyFrame KeyTime="0:0:0.9" Value="Transparent"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
我需要根据我的VM中的属性将这些故事板应用于Border控件的background属性。我可以将它们包装成样式并将其绑定到属性吗? 没有故事板我会做这样的事情
<Border BorderBrush="AliceBlue">
<Border.Background>
<SolidColorBrush Color="{Binding Path=Direction,
Converter={StaticResource dirToColConvertor}}"/>
</Border.Background>
答案 0 :(得分:0)
要更改您必须调用的控件的状态
VisualStateManager.GoToSate(yourcontrol,Statename的,IsTransition)。
答案 1 :(得分:0)
我通过结合 vinod8812 的答案和自定义附加属性(如下所述:http://umairsaeed.com/2010/04/22/custom-attached-properties-in-silverlight)解决了这个问题。我将每个故事板更改为可视状态,并使用附加属性将其绑定到我的viewmodel。