在WPF中設計登錄窗口關閉時打開主窗口,自動生成的App.xaml不能滿足要求,
1、把App.xaml的屬性窗口中的生成操作設定為 無
2、添加Program類
static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { LoginWindow loginForm = new LoginWindow(); loginForm.Init(); bool? rt = loginForm.ShowDialog(); loginForm.Close(); if (rt == true) { Application App = new Application(); App.ShutdownMode = ShutdownMode.OnMainWindowClose; MainWindow m_MianWindow = new MainWindow(); App.MainWindow = m_MianWindow; App.Run(m_MianWindow); } } }
這樣就可以滿足要求了
參考:http://www.mysjtu.com/page/M0/S613/613036.html
方法二:
最近看一方法,不用添加Program方法即可,代碼如下:
public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { Application.Current.ShutdownMode = System.Windows.ShutdownMode.OnExplicitShutdown; LoginWindow window = new LoginWindow(); bool? dialogResult = window.ShowDialog(); if ((dialogResult.HasValue == true) && (dialogResult.Value == true)) { base.OnStartup(e); Application.Current.ShutdownMode = ShutdownMode.OnMainWindowClose;
} else { this.Shutdown(); } } }
通過Application的ShutdownMode控制進程的運行時間。