<Grid.Triggers>
<EventTrigger RoutedEvent="Border.Loaded">
<EventTrigger.Actions >
<BeginStoryboard>
<Storyboard x:Name="MyStoryboard" AutoReverse="True" RepeatBehavior="Forever">
<ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="border" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)">
<SplineColorKeyFrame KeyTime="00:00:01" Value="#FFFAFAFA"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Grid.Triggers>如何动态启用\禁用此事件触发器\动画。我在想我可以绑定到一个IValueConverter并禁用故事板,但似乎没有任何合适的属性来绑定?
发布于 2008-10-03 11:44:43
目前在Silverlight中唯一可用的触发器是“已加载”,对于所有其他事件,您必须编写一些代码。要使用这种技术,故事板应该放在参考资料部分而不是触发器中,并且您将从代码中调用故事板上的Begin()。
如果你正在做一个控件的模板化,那么有一些叫做转换的东西,可以让你基于控件事件启动故事板,比如MouseOver。这是由可视化状态管理器处理的:
http://timheuer.com/blog/archive/2008/06/04/silverlight-introduces-visual-state-manager-vsm.aspx
发布于 2008-10-03 11:59:08
我并不是真的希望基于事件来关闭动画。我想基于我的业务对象的一个属性来做这件事,我也在绑定?我希望有类似Storyboard.Enabled =False的东西!?!?!
发布于 2008-10-19 00:10:38
您无法在Silverlight中使用触发器执行您所要求的操作。没有办法在触发器中包含条件。您可以连接已加载的事件,在那里检查您的条件,如果满足,则启动故事板。但是,并不存在仅XAML的等价物。
https://stackoverflow.com/questions/166295
复制相似问题