新窗口后程序不会停止可能是C#、WPF、.NET4.0的一个愚蠢的问题:如果我在窗口派生类上执行新操作而不是在在此窗口调用ShowDialog,我的程序关闭时不再关闭。例子:Windowd=newWindow();//d.ShowDialog();为什么会这样?我不想显示窗口,我只想将此对象用于某些目的。那么我应该怎么做才能让我的程序在之后关闭呢?您很可能已将您的应用程序配置为仅在其所有窗口关闭时关闭,并且通过创建永不关闭的新窗口,您的应用程序将永远不会关闭。此设置由Application.ShutdownMode属性控制,该属性指定导致调用Shutdown方法的条件。基本上,您有三个选择。第一个,正如您所遇到的,不会关闭您的应用程序,除非并且直到它创建的所有窗口都关闭。它们是由用户关闭还是通过调用Close方法以编程方式关闭并不重要。通过将Application.ShutdownMode属性设置为OnLastWindowClose来指定此选项。第二种方法利用了几乎所有应用程序都有一个“主”窗口(这是启动应用程序时显示的第一个窗口)这一事实,当运行自动关闭整个应用程序(和所有子窗口)时,主窗口关闭.同样,窗口是由用户关闭还是由代码关闭并不重要。通过将Application.ShutdownMode属性设置为OnMainWindowClose来指定此选项。第三个选项本质上是说您将手动管理事物。它不会关闭应用程序,直到您自己通过代码调用Shutdown方法。通过将Application.ShutdownMode属性设置为OnExplicitShutdown来指定此选项。在这种情况下,我的建议是设置第二个选项,当用户关闭主窗口时自动关闭应用程序。这将防止任何可能仍然显示的杂散子窗口阻止您的应用程序关闭。这消除了编写Stecya的答案中显示的代码的需要,并让运行时自动为您处理所有这些。您可以使用此代码关闭所有窗口。以上是C#学习教程:程序在新窗口后不会停止分享所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——privatevoidCloseAllWindows(){foreach(varwindowinApplication.Current.Windows)window.Close();}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
