如何绑定故事板?

如何绑定故事板?

问题描述:

我有两个故事板如下。如何绑定故事板?

<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控件的背景属性。我是否可以将这些包装在风格中并将其绑定到属性? 没有故事板我做这样的事情

<Border BorderBrush="AliceBlue"> 
<Border.Background> 
    <SolidColorBrush Color="{Binding Path=Direction, 
     Converter={StaticResource dirToColConvertor}}"/> 
</Border.Background>  

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

要改变你要调用

VisualStateManager.GoToSate(yourcontrol,Statename的,IsTransition)控制的状态。

+0

感谢您的回答。有没有办法在xaml中做到这一点? – 2012-07-10 04:23:18

+0

你可以使用触发器,但你需要有一个事件来切换状态。你可以查看下面的链接http://www.joemarini.com/tutorials/tutorialpages/xamlpropertytriggers.php – vinod8812 2012-07-11 10:24:16