【问题标题】:Fade Out/In when ViewModel ChangesViewModel 更改时淡出/淡入
【发布时间】:2012-07-24 06:06:17
【问题描述】:

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

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

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

【问题讨论】:

    标签: wpf mvvm contentpresenter


    【解决方案1】:

    AnimatedTransition 是你可能追求的:

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

    其他一些答案:

    【讨论】:

    • 好文章——AnimatedTransition 正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    相关资源
    最近更新 更多