当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《从App.xaml.cs关闭WPF应用程序》经验,为你挑选了2个好方法。

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

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

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

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



1> Jakob Christ..:

首先从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);
        }
    }


我改变了答案,向您展示如何避免创建主窗口.首先从App.xaml中删除StartupUri非常重要.

2> FodderZone..:

如果从app.xaml中删除具有MainWindow的应用程序的StartupUri,则需要确保在OnStartup方法中进行以下调用,否则当MainWindow关闭时应用程序将不会终止.

this.ShutdownMode = System.Windows.ShutdownMode.OnMainWindowClose;

@Frank Schwieterman,这些内容可以帮助您解决控制台窗口问题.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有