如何在WPF中更改视图?

Mic*_*sto 4 c# wpf mvvm

有一些空闲时间,想尝试在WPF中制作游戏.我想知道,更改窗口视图的最佳方法是什么?我做了一个"主菜单"窗口,有三个按钮..新游戏,继续游戏和退出游戏.当按下新游戏时,我希望窗口转到下一个"viewstate"以创建播放器等等,不要想要弹出一个新窗口.什么是实现这一目标的最佳方式.

Ste*_*pUp 12

如果要根据ViewModel动态切换视图,则使用DataTemplates是合适的:

<Window>
   <Window.Resources>
      <DataTemplate DataType="{x:Type ViewModelA}">
         <localControls:ViewAUserControl/>
      </DataTemplate>
      <DataTemplate DataType="{x:Type ViewModelB}">
         <localControls:ViewBUserControl/>
      </DataTemplate>
   <Window.Resources>
  <ContentPresenter Content="{Binding CurrentView}"/>
</Window>
Run Code Online (Sandbox Code Playgroud)

如果Window.DataContext是实例ViewModelA,ViewA则将显示和

Window.DataContext 是ViewModelB的一个实例,然后将显示ViewB.

我见过并阅读过的最好的例子是由Rachel Lim制作的.查看示例.