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

woaipb woaipb 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
一个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,谢谢!
...全文

相关推荐

Prism MVVM应用 登陆后切换主窗体实现

应用场景        使用Prism7开发WPF程序,编码采用MVVM形式。当程序启动时,首先进入一个登陆界面,进行登陆认证,认证成功后转入程序布局主窗口。 设计思路         WPF程序框架搭建后,程序中存一个Shell.xaml,相当于表演者的唯一舞台。登陆窗体(以下简称 LoginView)和程序布局主窗体(以下简称 MainView),分别利用IRegionManager进行管理,根据需要在不同时机相继出场表演。所有操作均由各自ViewModel(简称VM)代码完成。        1.当程序启动后,Shell通过VM,使用RegionManager的Add方法激活LoginView。登陆操作后,发送消息loginState消息。该消息的发送是通过一个自定义的消息发送和订阅类来完成的(程序中将定义为:LoginSentEvent)。        2.Shell通过VM接受LoginSentEven传递的loginState来接收登陆成功与否的消息,如果登陆成功,则使用RegionManager的Deactivate方法使LoginView处于非激活隐藏。利用 Add方法使MainView视图激活。如果不成功呢,当然不改变视图了,继续登陆操作。

XBMY

wpf中MVVM模式下窗体跳转及显隐控制实现

MVVM中的,如何通过命令实现窗体之间的跳转、拖动以及显隐控制一直是困扰初学者的一个难题,本程序通过简单的示例代码,实现了这些功能,可以帮助初学者快速掌握这些基础操作。

天文学

基于Prism的WPF桌面应用快速开发框架,含登录、升级、多模块管理

这是一个面向WPF桌面应用开发的成熟客户端框架,基于.NET 6构建,核心采用Prism实现MVVM模式,内置依赖注入容器、事件聚合与模块化通信机制,省去大量基础架构代码编写。框架已集成完整业务流程:从用户登录、主界面布局(支持AvalonDock停靠布局)、多业务模块管理(如OA、Quartz任务调度、敏捷开发看板等),到自动更新功能(集成AutoUpdater.NET和NetSparkle),再到安装部署(含WIX打包工具链和简易启动说明)。UI层面整合了MahApps.Metro、Xceed.Wpf、Gong.Wpf.DragDrop等主流WPF组件库,提升界面表现力与交互体验。后端兼容ASP.NET Core,与AIStudio.Blazor.App共享同一套服务接口,便于前后端协同开发。目录结构清晰,包含测试辅助、布局页、基础服务、安装配置等完整工程模块,开箱即用,适合中大型WPF项目快速启动。

rain6

(源码)基于WPF和Prism框架的物料入仓管理系统.zip

# 基于WPF和Prism框架的物料入仓管理系统 ## 项目简介 物料入仓管理系统是一个基于WPF和Prism框架的应用程序,旨在管理和跟踪物料的入仓和存储过程。该系统提供了用户登录、主界面导航、存储数据初始化、存储状态管理等功能,使用Material Design主题和Newtonsoft.Json进行JSON操作,确保用户界面美观且数据处理高效。 ## 项目的主要特性和功能 ### 用户管理 登录与登出用户可以通过登录界面进行身份验证,登录成功后可以访问主界面,并在需要时登出系统。 注册新用户可以通过注册功能创建账户。 ### 主界面与导航 主界面提供用户名显示和登出功能,支持菜单导航和页面跳转。 菜单导航用户可以通过菜单栏访问不同的功能模块,如个性化设置、关于更多等。 ### 存储管理 存储数据初始化系统启动时自动初始化存储数据,包括获取存储状态信息、删除无数据的存储项、添加新的存储项等。

t0_54coder

龙马哥实战项目基于WPF与Prism框架构建企业级桌面应用集成WebAPI实现前后端分离涵盖用户管理数据展示业务处理等核心模块采用SqlServer数据库存储于虚拟机环.zip

龙马哥实战项目基于WPF与Prism框架构建企业级桌面应用集成WebAPI实现前后端分离涵盖用户管理数据展示业务处理等核心模块采用SqlServer数据库存储于虚拟机环.zip

A000000999999Z
评论 7
收藏 已收藏
分享
返回顶部
woaipb
WPF/Silverlight 8,757 成员 12,031 内容