WPF / Silverlight:如何在MVVM中使用DataTrigger故事板动画?

前端之家收集整理的这篇文章主要介绍了WPF / Silverlight:如何在MVVM中使用DataTrigger故事板动画?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个名为IsLoginWrong的布尔属性,如果IsLoginWrong为true,我想播放一个故事板动画. (IsLoginWrong执行OnPropertyChanged事件,所以我知道绑定没问题)但是我的语法很难.这可能不是正确的,但我认为数据触发器只能存在于样式中……

<UserControl.Style>
    <Style>
        <Style.Triggers>
            <DataTrigger Binding="{Binding Path=IsLoginWrong}" Value="True">
                <DataTrigger.EnterActions>
                    <BeginStoryboard Storyboard="{StaticResource LoginWrong}"/>
                </DataTrigger.EnterActions>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</UserControl.Style>

但是这引发了一个异常“Style中的故事板树无法指定TargetName”… beause样式无法专门引用项目..真棒.那我怎么做我想做的事情呢? (如果布尔值在mvvm中发生变化,则播放动画)

谢谢

解决方法

在样式中,您无法引用故事板名称.所以我开始工作的方式是在实际风格中推动你的故事板:

<UserControl.Style>     
    <Style>         
        <Style.Triggers>             
            <DataTrigger Binding="{Binding Path=IsLoginWrong}" Value="True">                       
                <DataTrigger.EnterActions>                     
                    <BeginStoryboard>
                        <Storyboard>
                            .... PUT YOUR ACTUAL STORY BOARD IN HERE ...
                        </Storyboard>
                    </BeginStoryboard>
                </DataTrigger.EnterActions>             
            </DataTrigger>         
        </Style.Triggers>     
    </Style> 
</UserControl.Style>

现在DataTriggers可以放入样式或控件模板中,因此使用控件模板可能有更好的方法.但这是我暂时想出来的.

猜你在找的Silverlight相关文章