ViewModel更改时淡出/淡出

时间:2012-07-25 18:12:22

标签: wpf mvvm contentpresenter

我的WPF应用程序的主窗口有一个标题栏/导航区域,该区域在应用程序的生命周期内持续存在,然后是工作区域,大多数用户交互发生在该区域。 (它全部按照MVVM模式的精神编码,我可能对代码隐藏有过度的厌恶:/)这个工作区只是ContentPresenter,它的内容绑定到MainWindowViewModel属性ISomeArbitraryVMInterface的属性。在我的代码中,通过从任何地方引发DomainEvent来更新此属性。

说完所有这些,当DomainEvent被解雇并且ContentPresenter的内容发生变化时,我希望ContentPresenter通过动画更改其不透明度 - 从用户的角度来看,我希望它看起来好像当前视图淡出,ContentPresenter使用新的ISomeArbitraryVMInterface更新,然后新的ISomeArbitraryVMInterface对应的新视图淡入。

我的第一个想法是,每当Content属性发生变化时,ViewModel都会触发一个事件,然后我意识到我已经完成了DomainEvent实现,但后来我想不出一种方法视图“监听”事件,然后同步淡出/更新/淡入。任何有关解决此类问题的见解都将非常感激。如果有一个优雅的解决方案,我会为后代发布一些代码片段。

1 个答案:

答案 0 :(得分:2)

AnimatedTransition就是你可能会追求的:

或者,您可以使用Visual State Manager和一些行为来自行触发您的DomainEvent,转到不同的淡入淡出状态。

其他一些答案: