我需要的是我的窗口類中的這樣一個事件處理程序。WPF創建兄弟窗口並關閉當前窗口
void someEventHandler(object sender, RoutedEventArgs e)
{
MyNewWindow mnw = new MyNewWindow();
mnw.Owner = Window.GetWindow(this);
mnw.ShowDialog();
this.Close();
}
Window.GetWindow(this)返回當前窗口的父窗口。
我曾經想過,當新窗口的所有者是當前窗口的父窗口時,它會等待父窗口;而不是現在的那個。但它沒有那樣工作。當前窗口等待新的執行並且僅在之後關閉。
如果我使用Show()而不是ShowDialog()出於某種原因,窗口根本不顯示。
也許我需要一些委託方法,但我不知道從哪裏開始。
編輯:我想我需要改善未來的參考問題: 新窗口應該是一個對話框到父窗口。如果我使用Show()父窗口變得可訪問,我不希望這樣。如果我使用ShowDialog(),它會變成當前窗口的對話框,這意味着當前窗口在新窗口關閉之前不會關閉,我也不希望這樣做。
在父窗口中處理這個問題是最簡單的解決方案。但子窗口可以從其他各種窗口調用,這使得事情變得複雜。我需要修改每個父窗口中的事件處理程序,而我不希望這樣。 – Kta
btw。在ShowDialog()之前調用this.Hide()確保了我的解決方案。窗口沒有關閉,但至少用戶認爲是這樣:) ty – Kta