2011-06-07 60 views

回答

4

第一个只关闭窗口,取决于您的Application.ShutdownMode甚至可能不关闭应用程序。

你怎么退出应用程序完全取决于你想要做什么,我为一个倾向于定义Application.MainWindow并设置ShutdownModeOnMainWindowClose因此,所有的小对话,不要阻止应用程序关闭(因为默认是OnLastWindowClose )。

3

肯定Window.Close();这将使所有其他窗口正确关闭并最终确定其可用资源。请注意,您应该在主窗口中调用此功能来关闭整个应用程序(即从主窗口中输入this.Close();)。

+2

尽管关闭不起作用。可能会打开后台线程或其他顶级窗口,这会阻止应用程序关闭。 – CodeNaked 2011-06-07 13:21:13

+0

当Window.Close();从主窗口调用,所有的子窗口都被标记为关闭(实际上它们的Close()函数被调用)。我还假设线程正常地在OnClosing()事件上正确终止。 – 2011-06-07 13:23:47

+2

您做了很多假设,并非应用程序中的所有窗口都必须属于一个主窗口。 – 2011-06-07 13:25:13

0

Application.Shutdown关闭所有打开的窗口并处理它们,同时您也有可能返回另一个退出代码。所以我会(通常)与Application.Shutdown一起去。