WPF Prism框架下先登录窗体再打开主窗体,

woaipb 2018-11-11 11:44:10
一个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,谢谢!
...全文
2190 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_41608802 2020-03-26
  • 打赏
  • 举报
回复
楼主是怎么解决这个问题的,如果在APP.xml.cs文件中的CreateShell方法中用的是登录页面,到了主页面是没法用RequestNavigate这个的原因???
woaipb 2020-01-21
  • 打赏
  • 举报
回复
多谢各位大神,一直困扰,终于解决了!
shui_liang_zi 2021-08-04
  • 举报
回复
@woaipb 您好,请问怎么解决的?
XiaoZe_Classmate 2019-12-28
  • 打赏
  • 举报
回复
3楼正解,在viewmodel中接收一下就行了, LoadCommand = new DelegateCommand<Window>(LoadCommandExecute);
XiaoZe_Classmate 2019-11-27
  • 打赏
  • 举报
回复 1
<i:Interaction.Triggers> <i:EventTrigger EventName="Loaded"> <i:InvokeCommandAction Command="{Binding LoadCommand}" CommandParameter="{Binding ElementName=MyWindow}"/> </i:EventTrigger> </i:Interaction.Triggers> 界面加载成功后在初始化;
a-shitou 2018-11-15
  • 打赏
  • 举报
回复
shell是主窗体但是只是一个框框吧,可以在shell里用region导航到login,登录成功后再吧region切换到你的主页面,
it_liang 2018-11-14
  • 打赏
  • 举报
回复
你要做到现将shell 窗体实例化,登录窗体close前,做shell的操作
private void Login()
{
IsSucceed = true;
EventHelper.LoginInEvent.Invoke();
this.loginView.Close();
}

EventHelper.LoginInEvent += () =>
{
QuickStartBootstrapper bootstrapper = new QuickStartBootstrapper();
bootstrapper.Run();

PageHelper.InitPageInfo();
};

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧