0

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

说了这么多,当DomainEvent被触发并且内容ContentPresenter被改变时,我想ContentPresenter通过动画改变它的不透明度——从用户的角度来看,我希望它看起来好像当前视图淡出,使用 new进行ContentPresenter更新ISomeArbitraryVMInterface,然后对应于 new 的新 ViewISomeArbitraryVMInterface淡入。

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

4

1 回答 1

2

AnimatedTransition 可能是您所追求的:

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

其他一些答案:

于 2012-07-25T19:36:47.020 回答