WPF Prism框架下先登录窗体再打开主窗体,
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视图激活。如果不成功呢,当然不改变视图了,继续登陆操作。
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项目快速启动。
(源码)基于WPF和Prism框架的物料入仓管理系统.zip
# 基于WPF和Prism框架的物料入仓管理系统 ## 项目简介 物料入仓管理系统是一个基于WPF和Prism框架的应用程序,旨在管理和跟踪物料的入仓和存储过程。该系统提供了用户登录、主界面导航、存储数据初始化、存储状态管理等功能,使用Material Design主题和Newtonsoft.Json进行JSON操作,确保用户界面美观且数据处理高效。 ## 项目的主要特性和功能 ### 用户管理 登录与登出用户可以通过登录界面进行身份验证,登录成功后可以访问主界面,并在需要时登出系统。 注册新用户可以通过注册功能创建账户。 ### 主界面与导航 主界面提供用户名显示和登出功能,支持菜单导航和页面跳转。 菜单导航用户可以通过菜单栏访问不同的功能模块,如个性化设置、关于更多等。 ### 存储管理 存储数据初始化系统启动时自动初始化存储数据,包括获取存储状态信息、删除无数据的存储项、添加新的存储项等。
龙马哥实战项目基于WPF与Prism框架构建企业级桌面应用集成WebAPI实现前后端分离涵盖用户管理数据展示业务处理等核心模块采用SqlServer数据库存储于虚拟机环.zip
龙马哥实战项目基于WPF与Prism框架构建企业级桌面应用集成WebAPI实现前后端分离涵盖用户管理数据展示业务处理等核心模块采用SqlServer数据库存储于虚拟机环.zip


