我有一个WPF应用程序,它使用MVVM。用户在编辑数据时,如果满足某些条件,则需要填写修订说明以进行审核。如果他们不需要,我会隐藏修订注释文本框以保持UI清晰。
目前,这是通过将文本框(及其标签)周围的网格的Visibility属性绑定到视图模型上的bool属性来完成的。当bool发生变化时,revision notes文本框将根据需要隐藏或显示。
这很好,但文本框刚刚出现。我想设置它的动画,使它从零高度增长到默认高度,或者类似的东西。
你知道我该怎么做吗?我以前做过动画,但这总是在我手动触发动画的时候。在这种情况下,我希望在XAML中声明动画,以便在绑定更改时自动进行。
有人能给我指正确的方向吗?
只需使用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>
听起来像是用DataStateBehavior来解决它。这是MSDN文档http://msdn.microsoft.com/en-us/library/vstudio/dn195678(v=vs.110).aspx。您还可以查看GoToStateAction。