2016-02-19 88 views
0

我正在開發一個小型項目,其中有一個登錄窗口,當用戶進行身份驗證時,它將打開一個新窗口,該窗口有效,但用戶登錄後我想關閉登錄窗口,主窗口不關閉。WPF MainWindow不能關閉。關閉

MainWindow mainWindow = new MainWindow(); 
mainWindow.Close(); 
Loader loader = new Loader(); 
loader.Show(); 
+5

什麼是上下文?你在哪裏調用'Close'方法? –

+3

請提供一個顯示您描述的行爲的最簡單示例。你是否有任何'Closing()'事件處理程序,可能會取消關閉命令? – dlatikay

+0

@LukeDinkler我在對用戶進行身份驗證後立即調用。 –

回答

1

您正在初始化窗口的新實例,然後立即關閉它。 看起來您的mainWindow不是您要關閉的登錄窗口。如果您想關閉當前的主窗口應用程序,您可以使用:

App.Current.MainWindow.Close(); 

確保您還設置了一個新的主窗口。我假設你想做類似的事情,並假設「裝載機」是你的新窗口:

private void Login(){ 
    App.Current.MainWindow.Close(); 
    Loader loader = new Loader(); 
    App.Current.MainWindow = loader; 
}