如何绑定故事板?

时间:2012-07-09 14:49:20

标签: silverlight xaml windows-7

我有两个故事板如下。

<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>    

2 个答案:

答案 0 :(得分:0)

要更改您必须调用的控件的状态

VisualStateManager.GoToSate(yourcontrol,Statename的,IsTransition)。

答案 1 :(得分:0)

我通过结合 vinod8812 的答案和自定义附加属性(如下所述:http://umairsaeed.com/2010/04/22/custom-attached-properties-in-silverlight)解决了这个问题。我将每个故事板更改为可视状态,并使用附加属性将其绑定到我的viewmodel。