【问题标题】:WPF Application still runs in background after closing关闭后 WPF 应用程序仍在后台运行
【发布时间】:2011-04-02 09:41:38
【问题描述】:

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

WPF Not closing properly

我已将我的一个 WinForm 应用程序转换为 WPF 应用程序,除了将几个单词更改为 WPF/C# 4.0 等效项(MessageBoxButtons 到 MessageBoxButton,为什么一个字母不同?)之外,不需要做任何剧烈的事情。

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

我没有在后台运行任何其他线程,所以我知道它没有在等待其他东西。

我才刚刚开始使用 WPF,但我认为当用户关闭应用程序时,它应该只是...关闭?

感谢您的帮助!

【问题讨论】:

    标签: wpf .net-4.0 c#-4.0 visual-c#-express-2010


    【解决方案1】:

    你的shutdown mode 是什么?如果它是明确的,那是因为你没有明确地关闭。如果是主窗口,那是因为你没有将主窗口分配给Application.MainWindow

    【讨论】:

    • 谢谢!我从来不知道关闭应用程序有不同的行为。如您的链接中所述,我只是将“ ShutdownMode="OnMainWindowClose" ”添加到我的应用程序的XAML中,它就像一个魅力!
    【解决方案2】:

    在应用程序关闭按钮上写下这段代码:

    Application.Current.Shutdown()
    

    【讨论】:

    • 我没有关闭按钮,但是通过点击 x 它将调用 Closed 事件,这对我来说效果很好:this.Closed += (s,e) => Application.Current。关机();
    【解决方案3】:

    或者,将其添加到您的 App.cs

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

    Detailed explanation here

    【讨论】:

      猜你喜欢
      • 2021-05-17
      • 2021-04-20
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-03
      • 1970-01-01
      相关资源
      最近更新 更多