如何绑定故事板?
问题描述:
我有两个故事板如下。如何绑定故事板?
<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)控制的状态。
感谢您的回答。有没有办法在xaml中做到这一点? – 2012-07-10 04:23:18
你可以使用触发器,但你需要有一个事件来切换状态。你可以查看下面的链接http://www.joemarini.com/tutorials/tutorialpages/xamlpropertytriggers.php – vinod8812 2012-07-11 10:24:16