南阳网站开发公司,广州 网站优化,如何进行电商网站设计开发,1688是什么平台一、前言 这是一篇极简的小短文。首先感谢站长和各位WPF大佬对我的指导#xff0c;我学到了很多#xff0c;还是关于利用Prism做Login对话框的事情#xff0c;看到站长发过一篇《WPF Prism框架Region失效了#xff1f;》#xff0c;目前我有一个自认为更合适的解决方法我学到了很多还是关于利用Prism做Login对话框的事情看到站长发过一篇《WPF Prism框架Region失效了》目前我有一个自认为更合适的解决方法给大家汇报一下二、主体内容 精髓就一句话在主App这个类里重载protected override void OnInitialized()这个方法然后login.ShowDialog()的逻辑写在里面就ok了具体看以下代码namespace Wpf1
{/// summary/// Interaction logic for App.xaml/// /summarypublic partial class App{protected override Window CreateShell(){return Container.ResolveMainWindow();}protected override void RegisterTypes (IContainerRegistry containerRegistry){}protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog){}protected override void OnInitialized(){ var login Container.ResolveLogin();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正常写写就行。作者王景浩微信IDdaidai_cn