如何为绑定到viewmodel属性的WPF控件设置动画?

时间:2013-11-20 23:01:55

标签: wpf xaml animation mvvm viewmodel

我有一个使用MVVM的WPF应用程序。当用户编辑数据时,如果满足某些条件,他们将需要填写修订说明以用于审计目的。如果他们不需要,我会隐藏修订备注文本框以保持用户界面清晰。

目前,通过将文本框(及其标签)周围的Grid的Visibility属性绑定到viewmodel上的bool属性来完成此操作。当bool改变时,revsion notes文本框将被隐藏或显示为必要。

这很好用,但文本框才会出现。我想为它设置动画,因此它从零高度增长到默认值,或类似的东西。

知道怎么做吗?我以前做过动画,但这总是在我手动触发动画的时候。在这种情况下,我想在XAML中声明动画,因此当绑定发生变化时会自动发生。

任何人都能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:4)

只需使用DataTrigger启动动画:

 <Grid>
    <Grid.Style>
       <Style>
           <Style.Triggers>
               <DataTrigger Binding="{Binding MyVMBool}"
                         Value="True">

                    <DataTrigger.EnterActions>
                        <BeginStoryboard >
                            <Storyboard>
                                <!-- DoubleAnimation on height or whatever -->
                            </Storyboard>
                        </BeginStoryboard>
                    </DataTrigger.EnterActions>

                    <DataTrigger.ExitActions>
                        <!-- you could animate close too if you wanted -->
                    </DataTrigger.ExitActions>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Grid.Style>

答案 1 :(得分:2)

听起来像是用DataStateBehavior解决它。这是MSDN文档http://msdn.microsoft.com/en-us/library/vstudio/dn195678(v=vs.110).aspx。您还可以查看GoToStateAction。

相关问题