MVVM WPF顺畅一个窗口切换到另一个(MVVM WPF change smoothly one

2019-10-18 22:03发布

我在做一个应用程序中使用WPF设计模式MVVM。 我有全尺寸的窗口(不仅最大化,但原图)。

我需要(在窗口A和关闭窗口的按压按钮X时窗口B是showns打开的窗口B)到一个窗口切换到另一个。

我关闭窗口中的在加载事件窗口B,但我仍然可以看到桌面一会显示窗口B之前。

如何做到这一点,没有看到桌面?

Answer 1:

而不是Windows之间切换,你可以有一个窗口ContentControl 。 所有你需要做的是改变其Content属性视图之间切换。

我也建议有一个看棱镜图书馆拥有这种内置的功能,特别是其导航文档 。



Answer 2:

你可以让2个独立的用户控件,并把每个窗口的内容的用户控件内。

你的主窗口中定义数据模板这些将决定什么是基于当前使用的视图Datacontext

<Window.Resources>
<DataTemplate DataType="{x:Type viewmodels:viewmodel1}" >
     <views:Usercontrol1/>
</DataTemplate>

<DataTemplate DataType="{x:Type viewmodels:viewmodel2}" >
    <views:Usercontrol2/>
</DataTemplate>
</Window.Resources>

然后创建一个MainViewModel并定义currentviewmodel viewmodel1viewmodel2和命令,这将改变currentviewmodel ,之后设置你的主窗口的MainViewModel的DataContext的。

在你的主窗口,你的按钮绑定到该命令,然后你只要把命令改变currentviewmodel和你的主窗口内

<Button Content="change grid data context" Command="{Binding yourCommand}"/>
<Grid DataContext="{Binding currentviewmodel}"/>

你不用担心它查看使用,当在DataContext被置其查看使用的DataTemplates定义



文章来源: MVVM WPF change smoothly one window to another