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可以放入样式或控件模板中,因此使用控件模板可能有更好的方法.但这是我暂时想出来的.

相关文章

  WPF/E初步印象 修订记录: 2007-01-18      创建 2007-1-25      增加对几何体类的描述,修...
[最后更新:2009.09.14] 稳扎稳打 Silverlight 系列文章 Silverlight 1.0 稳扎稳打Silverlight(1) - 1....
WPF/E的正式版本Silverlight已经公布了,下表列出正式版所有的特性与.NET 3.0中WPF以及Flash/Flex的特性...
由于名称的关系, WPF与WPF/E一直被认为是类似的东西.其实两者除了呈现UI的部分使用的是共同语言XAML之外...
    由于名称的关系, WPF与WPF/E一直被认为是类似的东西.其实两者除了呈现UI的部分使用的是共同语言...
        Visual Studio "Orcas"有了好多新东西哦,太好了,今天看了一下,实在太屌了,从Sc...