我有一个使用MVVM的WPF应用程序。当用户编辑数据时,如果满足某些条件,他们将需要填写修订说明以用于审计目的。如果他们不需要,我会隐藏修订备注文本框以保持用户界面清晰。
目前,通过将文本框(及其标签)周围的Grid的Visibility属性绑定到viewmodel上的bool属性来完成此操作。当bool改变时,revsion notes文本框将被隐藏或显示为必要。
这很好用,但文本框才会出现。我想为它设置动画,因此它从零高度增长到默认值,或类似的东西。
知道怎么做吗?我以前做过动画,但这总是在我手动触发动画的时候。在这种情况下,我想在XAML中声明动画,因此当绑定发生变化时会自动发生。
任何人都能指出我正确的方向吗?
答案 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。