一、前言

这是一篇极简的小短文。首先感谢站长和各位WPF大佬对我的指导,我学到了很多,还是关于利用Prism做Login对话框的事情,看到站长发过一篇《WPF Prism框架Region失效了?》,目前我有一个自认为更合适的解决方法,给大家汇报一下:

二、主体内容

精髓就一句话,在主App这个类里重载protected override void OnInitialized()这个方法,然后login.ShowDialog()的逻辑写在里面就ok了,具体看以下代码:

namespace Wpf1
{/// <summary>/// Interaction logic for App.xaml/// </summary>public partial class App{protected override Window CreateShell(){return Container.Resolve<MainWindow>();}protected override void RegisterTypes (IContainerRegistry containerRegistry){}protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog){}protected override void OnInitialized(){     var login = Container.Resolve<Login>();var loginResult = login.ShowDialog();if (loginResult.Value)base.OnInitialized();elseApplication.Current.Shutdown();}}
}

然后再Login.xaml.cs里的“登录”和“退出”按钮的Click事件里这么写

private void Btn1_Click(object sender, RoutedEventArgs e)
{//登录DialogResult = true;
}
private void Btn2_Click(object sender, RoutedEventArgs e)
{//退出DialogResult = false;
}

这样就可以了,灰常的简单,还是关键的一点是在APP里重写 protected override void OnInitialized()这个方法,这样就不会在Login加载的时候同时也加载MainWindowViewModel了。不过这也有一点要注意:此时Prism的Region好像还没有生效,利用Prism的视图注入或者视图发现这两个办法给Login添加视图应该不行,还好一般的Login也不是特别复杂,在Login.xaml正常写写就行。

作者:王景浩

微信ID:daidai_cn

Prism For WPF Login对话框又简单又合理的方案之一相关推荐

  1. Prism for WPF初探(构建简单的模块化开发框架)

    先简单的介绍一下Prism框架,引用微软官方的解释: Prism provides guidance to help you more easily design and build, flexibl ...

  2. 安装window service 中出现Set Service Login对话框

    当弹出窗口(注:Set Service Login对话框)时,输入用来运行该服务的帐户的用户名和密码.用户名必须以domain\username的形式.(注:如果不是domain内帐 户,可以使用Yo ...

  3. 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器

    从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器 这段时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了. Calibu ...

  4. WPF Expander控件简单样式

    WPF Expander控件简单样式 样式代码: <Style x:Key="ExpanderStyle1" TargetType="{x:Type Expande ...

  5. 简单的群体测试方案C++代码(Group testing against Covid-19)

    原理参考链接 https://www.econstor.eu/handle/10419/221811 http://www.magigen.com/h-nd-348.html 文章原理回顾 文章比较了 ...

  6. 文件夹选择对话框 JS实现的两种方案

    文件夹选择对话框 JS实现的两种方案 /**  * browseFolder.js  * 该文件定义了BrowseFolder()函数,它将提供一个文件夹选择对话框  * 以供用户实现对系统文件夹选择 ...

  7. 朵拉云提供最简单的免费虚拟化方案:Hyper-V Server + Windows Admin Center

    最简单的免费虚拟化方案:Hyper-V Server + Windows Admin Center 一机多用的同时,想要服务器尽可能的稳定.至于软硬件的选择就是另一个故事了,这里我们来谈谈虚拟化. 为 ...

  8. Android之简单改变按钮颜色方案

    前一段时间跟着大哥做项目,大哥让我给按钮背景添加颜色,然后点击变色,于是我就想到了button三态的变换方法,然而没有实现,反而出现了问题,今天就和大家说说,如何解决color设为背景颜色动态变色. ...

  9. android 方法调用,Android 简单的方法调用方案

    Method Bridge 一个简单的方法调用方案 特性 方法动态注册 跨对象.跨页面.跨线程等方法调用 添加依赖 配置仓库 allprojects { repositories { ... mave ...

最新文章

  1. 写给新手:2021版调参上分手册!
  2. DB time抖动的原因分析
  3. hbase shell-dml(数据管理指令)
  4. java中用字节流读取文本时中文乱码
  5. 【NOI2019】回家路线【无后效性dp状态设计】【斜率优化】
  6. 露雨资源库三(第一个.net2.0软件)-为控件增加自动完成功能
  7. Java 蓝桥杯 时间转换
  8. 自定义日期输入控件-解决需要用户输入日期的麻烦控制
  9. Visual Assist安装完之后的文件复制路径
  10. SQL Server中的零碎数据库还原
  11. swift VFL - 父视图是scrollview 注意点
  12. 接口 与 抽象类 区别
  13. C++ 高性能服务器网络框架设计细节
  14. java坦克大战图片素材包_坦克大战图片素材
  15. SugarNMS 工业交换机网管软件
  16. 支付宝对账单功能开发
  17. matlab中tgn,TGN/EE介导的囊泡运输与GDI1协同调控根毛中ROP2 GTPase的动态定位的机理研究...
  18. 面向交通预测的动态图卷积循环神经网络:基准和方法(重磅推荐)
  19. (按位取反)运算的理解
  20. Python+大数据-数据处理与分析-pandas快速入门

热门文章

  1. iOS UI基础-7.0 UIScrollView
  2. 搞IT的技术人员为什么会如此苦逼
  3. TFS 2012研发管理能力(9)
  4. The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.
  5. 在MinGW下使用DShow的方法
  6. PHP yii 框架源码阅读(一)
  7. luogu P3380 【模板】二逼平衡树(树套树)
  8. android获取手机机型、厂商、deviceID基本信息
  9. POJ2676,HDU4069解决数独的两种实现:DFS、DLX
  10. 隐藏UITableView当没有数据或数据不够的时候出现的分割线.