当我在WPF中打开一个新窗口时,我遇到了一个小问题:
private void button2_Click(object sender, RoutedEventArgs e)
{
var newWindow = new Main();
newWindow.Show();
}
如果我尝试在其末尾使用Application.Current.Shutdown();
,我的整个应用程序将关闭,而不仅仅是我的第一个初始窗口。所以我的问题是有没有办法在安全关闭上一个窗口时打开一个新窗口?
谢谢:)
答案 0 :(得分:2)
我会做这样的事情:
//Somewhere in your class
YourOtherForm otherForm = null;
//then, on the event handler
private void button2_Click(object sender, RoutedEventArgs e) {
if((otherForm.IsDisposed) || (null == otherForm)) {
otherForm = new YourOtherForm();
// or, this is an MDI or something
// otherForm = new YourOtherForm(this);
// assuming you have an extra constructor to pass the parent
}
otherForm.Show();
this.Close(); // or this.Hide(); if it's the main form
}
编辑:我还没有测试过这段代码..
答案 1 :(得分:1)
执行此操作的唯一方法是在外部运行程序(我会尽快找到执行此操作的代码)。否则,当父关闭时,将破坏在主应用程序中创建的任何内容。
启动新程序的代码:
System.Diagnostics.Process.Start("program.exe");
答案 2 :(得分:0)
您需要在App.xaml中将ShutdownMode更改为OnLastWindowClose。