c# - 从 App.xaml.cs 关闭 WPF 应用程序

标签 c# wpf application-shutdown

我目前正在编写一个 WPF 应用程序,它在 App.xaml.cs 中执行命令行参数处理(这是必要的,因为 Startup 事件似乎是获取这些参数的推荐方式)。根据我想在那时退出程序的论点,据我所知,应该在 WPF 中使用 Application.Current.Shutdown() 或在这种情况下(就像我一样)在当前应用程序对象中)也可能只是 this.Shutdown()

唯一的问题是这似乎无法正常工作。在 Shutdown() 行仍然被执行之后,我已经逐步调试了调试器和代码,这导致了方法中的错误,因为我预计应用程序不会活那么久。此外,主窗口(在 XAML 的 StartupUri 属性中声明)仍会加载。

我已经检查了该方法的文档,但在备注中没有发现任何内容告诉我根本不应该在 Application.StartupApplication 期间使用它.

那么,此时退出程序的正确方法是什么? e. Application 对象中的 Startup 事件处理程序?

最佳答案

首先从 App.xaml 中删除 StartupUri 属性,然后使用以下内容:

    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);

        bool doShutDown = ...;

        if (doShutDown)
        {
            Shutdown(1);
            return;
        }
        else
        {
            this.StartupUri = new Uri("Window1.xaml", UriKind.Relative);
        }
    }

关于c# - 从 App.xaml.cs 关闭 WPF 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/606043/

相关文章:

delphi - 是否有一个 Delphi 事件保证在应用程序终止时但在任何表单被销毁之前调用?

c# - 来自 C# 代码隐藏的动态 Plotly 图

c# - DivideByZeroException 太慢

c# - 如何保持顺序优先

WPF:用户控件的命令和命令参数

c# - 从没有图像类的文件中获取 exif

wpf - 如何隐藏 wpf datagrid 行选择器

c# - 如何设置 System.Windows.Documents.TableCell 的垂直对齐方式?

visual-studio-2010 - 当调试器关闭时如何捕获 Qt 应用程序的退出?