WPF Prism框架下先登录窗体再打开主窗体,
一个WPF项目,使用了Prism框架,在Bootstrapper.cs下实现如下代码:
protected override System.Windows.DependencyObject CreateShell()
{
Window login = this.Container.Resolve<Views.Login>();//login是登录窗口
login.Show();
Application.Current.MainWindow = login;
return shell;
}
然后在登录窗口的登录命令中实现:
Shell shell = new Shell();//shell是主窗体
shell.show();
Application.Current.MainWindow = shell;
login.Close();
这样可以实现先打开登录窗体,然后登录成功的话打开主窗体,关闭登录窗体,但发现问题:
主窗体里使用了:
var regionManager = this.UnityContainer.Resolve<IRegionManager>();
Uri uri = new Uri(selectedNode.Content, UriKind.Relative);
regionManager.RequestNavigate("Main", uri);
来加载各种模块界面,但发现使用如上代码打开的主窗体,,这个regionManager.RequestNavigate无法工作,不能正常加载,但如果一开始是使用:
Window shell= this.Container.Resolve<Shell>();
shell.Show();
Application.Current.MainWindow = shell;
来打开的话,则能正常加载,应该是没有注册主窗体所致,请问该如何解决,才能既实现先打开登录窗体后打开主窗体,还能正常使用RegionManager,谢谢!