【发布时间】:2010-12-10 04:17:37
【问题描述】:
所以,假设我想在 ViewModel 中发生某些逻辑时播放故事板动画。但是 StoryBoard 存在于视图上,我没有从 ViewModel 中引用视图。那我怎么去玩故事板呢?
【问题讨论】:
所以,假设我想在 ViewModel 中发生某些逻辑时播放故事板动画。但是 StoryBoard 存在于视图上,我没有从 ViewModel 中引用视图。那我怎么去玩故事板呢?
【问题讨论】:
您可以使用数据触发器在视图中启动动画。
类似这样的:
...<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value.Name}" Padding="5">
<TextBlock.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Value.StartAnimation}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard
Storyboard.TargetProperty="FontSize"
Duration="0:0:0.5">
<DoubleAnimation From="10" To="30" AutoReverse="True" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
...
【讨论】: