C# WPF只能打开一个窗口?
假设有两个项目,一个WinForms项目和一个WPF项目,在WinForms项目中,以下代码位于Main()中并删除应用程序没有问题。运行:C# WPF只能打开一个窗口?,c#,.net,wpf,C#,.net,Wpf,假设有两个项目,一个WinForms项目和一个WPF项目,在WinForms项目中,以下代码位于Main()中并删除应用程序没有问题。运行: while (true) { Thread.Sleep(1000); Form1 window = new Form1(); window.Show(); Thread.Sleep(1000); windo
while (true)
{
Thread.Sleep(1000);
Form1 window = new Form1();
window.Show();
Thread.Sleep(1000);
window.Close();
}
但是,在WPF应用程序中,删除StartupUri=“Window1.xaml”,然后创建:
public App()
{
while (true)
{
Thread.Sleep(1000);
Window window = new Window();
window.Show();
Thread.Sleep(1000);
window.Close();
}
}
程序无限循环,但窗口只打开一次?传统上,如果删除StartupUri,则应在应用程序中加载主窗口。Startup事件
public App()
{
Startup += App_Startup
}
public void App_Startup(object sender, StartupEventArgs e)
{
while (true)
{
Thread.Sleep(1000);
MainWindow = new Window();
MainWindow.Show();
Thread.Sleep(1000);
MainWindow.Close();
}
}
尽管如此,我也不确定这是否有效。你到底想做什么?你需要像这样改变关机模式
public App()
{
this.ShutdownMode = ShutdownMode.OnExplicitShutdown;
while (true)
{
Thread.Sleep(1000);
Window window = new Window();
window.Show();
Thread.Sleep(1000);
window.Close();
}
//Will never get here with this sample code,
//but this would be how you close the app.
this.Shutdown();
}
否则,WPF将关闭打开的第一个窗口视为关闭应用程序。尽管循环中的代码将继续运行
某些应用程序的生存期可能会延长
不依赖于主
窗口或最后一个窗口已关闭,或
可能不依赖于当前的windows
全部的对于这些场景,您需要
将ShutdownMode属性设置为
OnExplicitShutdown,它需要
显式关闭方法调用停止
应用程序。否则
应用程序继续在中运行
背景
这也不行。启动事件args接受StartupEventArgs。没有恶意,在单独的线程上,我正在检查.XAML文件是否已更新。如果有,我想使用XamlReader.Load(fileStream)重新加载主窗口;非常感谢。我遇到了这样的问题:显示一个模式登录对话框,然后WPF在主窗口显示之前在没有任何消息或异常的情况下退出。