我的 WPF 应用程序的主窗口有一个标题栏/导航区域,该区域在应用程序的整个生命周期内都存在,然后是大多数用户交互发生的工作区。(它都是按照 MVVM 模式的精神编写的,我可能对代码隐藏有过分的反感:/)这个工作区只是 a ContentPresenter
,它的内容绑定到 aMainWindowViewModel
的 type 属性ISomeArbitraryVMInterface
。在我的代码中,这个属性是通过DomainEvent
从任何地方提出来更新的。
说了这么多,当DomainEvent
被触发并且内容ContentPresenter
被改变时,我想ContentPresenter
通过动画改变它的不透明度——从用户的角度来看,我希望它看起来好像当前视图淡出,使用 new进行ContentPresenter
更新ISomeArbitraryVMInterface
,然后对应于 new 的新 ViewISomeArbitraryVMInterface
淡入。
我的第一个想法是每当 Content 属性发生变化时让 ViewModel 触发一个事件,然后我意识到我已经完成了我的DomainEvent
实现,但是我想不出一种方法让 View “监听”事件然后同步淡出/更新/淡入。任何解决此类问题的见解将不胜感激。如果有一个优雅的解决方案,我会为后代发布一些代码片段。