我需要的是我的窗口类中的这样一个事件处理程序。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