WPF应用程序关闭后仍在后台运行

WPF应用程序关闭后仍在后台运行,wpf,.net-4.0,c#-4.0,visual-c#-express-2010,Wpf,.net 4.0,C# 4.0,Visual C# Express 2010,这与此处提出的问题略有关联,但答案不适用于我的情况,因为我没有使用线程: 我已经将我的一个WinForm应用程序转换为WPF应用程序,除了将几个单词更改为WPF/C#4.0等价物(MessageBoxButtons到MessageBoxButton,为什么会有一个字母的差异?)之外,无需做任何事 无论如何,如果我通过调试器运行应用程序,它会正常运行,直到我用窗口右上角的“X”按钮关闭它。应用程序窗口关闭,但我注意到调试器仍然显示停止图标,在任务管理器中检查确认它仍在运行 我没有在后台运行任何其

这与此处提出的问题略有关联,但答案不适用于我的情况,因为我没有使用线程:

我已经将我的一个WinForm应用程序转换为WPF应用程序,除了将几个单词更改为WPF/C#4.0等价物(MessageBoxButtons到MessageBoxButton,为什么会有一个字母的差异?)之外,无需做任何事

无论如何,如果我通过调试器运行应用程序,它会正常运行,直到我用窗口右上角的“X”按钮关闭它。应用程序窗口关闭,但我注意到调试器仍然显示停止图标,在任务管理器中检查确认它仍在运行

我没有在后台运行任何其他线程,因此我知道它没有等待其他线程

我刚刚开始使用WPF,但我认为当用户关闭应用程序时,它应该…关闭


谢谢你的帮助

你的目标是什么?如果是显式的,那是因为您没有显式关闭。如果它是主窗口,那是因为您尚未将主窗口分配给应用程序。主窗口

在应用程序关闭按钮上写入此代码:

Application.Current.Shutdown()

或者,将其添加到App.cs

public App()
    {
        ShutdownMode = ShutdownMode.OnLastWindowClose;
    }

谢谢!我从来不知道关闭应用程序会有不同的行为。我只是在我的应用程序的XAML中添加了“ShutdownMode=“OnMainWindowClose”,如您在链接中所述,它的效果非常好!我没有关闭按钮,但通过点击x它将调用关闭事件,这对我来说非常有效:this.Closed+=(s,e)=>Application.Current.Shutdown();