http://www.27ba.com/post/145.html WPF:驗證登錄后關閉登錄窗口,顯示主窗口的解決方法 最近想做一個基於Socket的通訊工具,想模仿QQ那樣,需要先登錄,登錄成功后才顯示主界面。但一開始的時候只要對登錄的窗體做Close,然后程序就直接退出了。因為程序入口是登陸窗體,一旦Close了,整個程序自然也就退出了,如果想實現關閉登錄界面(不是Hide()隱藏),顯示主界面的話,可以利用DialogResult來實現。主界面設置為入口的主界面。主界面的Load事件如下: public MainWindow() { InitializeComponent(); //顯示登陸界面,驗證后返回。 LoginWindow loginWindow = new LoginWindow(); loginWindow.ShowDialog(); if (loginWindow.DialogResult != Convert.ToBoolean(1)) { this.Close(); } //顯示登陸界面 結束 } 也可以把代碼放在Window_Loaded中,但缺點時候登陸窗口與主窗口都同時加載,而放在MainWindow()中先加載登陸窗口驗證完畢后才加載主窗口。 然后在登錄界面的驗證按鈕事件里驗證通過后只要加上如下代碼即可: private void BtLogin_Click(object sender, RoutedEventArgs e) { if (TxUserName.Text == "admin" && TxPassword.Password == "admin") { this.DialogResult = Convert.ToBoolean(1); this.Close(); } else { MessageBox.Show("賬號或密碼錯誤!"); } } 這樣就可以實現關閉登錄界面時不退出應用程序了。