WPF Prism将usercontrol设置为Shell

时间:2017-08-09 06:49:28

标签: wpf mvvm prism mef prism-4

我是WPF Prism的新手,我看过很多关于Prism的在线文章,我发现所有的示例代码都使用windows应用程序作为shell,所以我有一个问题,我可以让UserControl作为shell吗?如果不是为什么?

2 个答案:

答案 0 :(得分:1)

shell应该是一个窗口,因为WPF应用程序总是有一个顶级窗口(除非作为XBAP托管在broswer中)但你可以将窗口的Content设置为用户控件引导程序的InitializeShell()方法:

protected override DependencyObject CreateShell()
{
    return Container.Resolve<MainWindow>();
}

protected override void InitializeShell()
{
    Application.Current.MainWindow.Content = new UserControl();
    Application.Current.MainWindow.Show();
}

UserControl必须托管在窗口或页面中。它不是顶级控制。

答案 1 :(得分:0)

  1. 可以单独打开窗口;而UserControl不能。这就是为什么顶层窗口必须是Window。
  2. UserControl还可以包含Regions。这使您可以使用Regions将UserControl嵌套在另一个UserControl中。