WPF新手村教程(四)中Application类如何?

摘要:WPF个人文档(四)—— Application类 前言 这一块其实本来是不太想讲的,你不太了解,不影响你写代码,遇到不会的随用随查即可 但是,对这个类有一定的了解之后,会帮助我们更快的了解WPF应用程序的结构,对应理解架构会有很多帮助 但
WPF个人文档(四)—— Application类 前言 这一块其实本来是不太想讲的,你不太了解,不影响你写代码,遇到不会的随用随查即可 但是,对这个类有一定的了解之后,会帮助我们更快的了解WPF应用程序的结构,对应理解架构会有很多帮助 但是,即便如此,实际开发当中使用的并不会特别多,没人会去在乎你对这个类了解的有多好 没人会去在乎你这个小小的员工架构能力有多强,也没人去在乎你会的东西有多么多 公司只会在乎你能不能赚取到足够的价值 一.Application类定义 Application 位于命名空间: System.Windows.Application; 它是一个 单例 类,一个 WPF 应用通常只有一个 Application 实例,可以通过 Application.Current 获取当前实例 该类跟踪在应用程序中打开的所有窗口,决定何时关闭应用程序,并引发可执行初始化和清除操作的应用程序事件 (出自《WPF编程宝典:使用C# 2012和.NET 4.5 第4版》) 其主要职责: 1.启动和退出应用程序 2.管理全局资源(资源字典) 3.管理主窗口和打开的所有窗口 4.处理全局异常 5.支持命令和消息循环 二.ShutdownMode —— Application 类控制程序关闭的方式 WPF 中 Application 类控制程序关闭的三种方式,也就是 ShutdownMode 属性的三种枚举值 1.OnMainWindowClose 当 Application.Current.MainWindow 被关闭时,应用程序退出 适合单窗口应用或有明确主窗口的多窗口应用 2.OnLastWindowClose 当应用程序打开的最后一个窗口被关闭时,应用程序退出 适合多窗口应用,不需要明确主窗口 3.OnExplicitShutdown 应用程序不会自动退出,必须手动调用 Application.Current.Shutdown() 才会结束 适合需要后台逻辑或延迟关闭的场景 示例代码:(C#或者xaml) // 方式1:主窗口关闭时退出 Application.Current.ShutdownMode = ShutdownMode.OnMainWindowClose; // 方式2:最后一个窗口关闭时退出 Application.Current.ShutdownMode = ShutdownMode.OnLastWindowClose; // 方式3:手动关闭 Application.Current.ShutdownMode = ShutdownMode.OnExplicitShutdown; // ... 什么时候需要退出,再调用 Application.Current.Shutdown(); <Application x:Class="Routing.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:Routing" <!-- Application类关闭程序的三种方法 --> ShutdownMode="OnExplicitShutdown" <!--ShutdownMode="OnLastWindowClose"--> <!--ShutdownMode="OnExplicitShutdown"--> StartupUri="Route.xaml"> <Application.Resources> </Application.Resources> </Application> [!TIP] WPF中,程序关闭的几种方式: 1.Application.Currrent.Shutdown(); 2.Close(); 3.Environment.Exit(0); 4.Process对象实例.Kill(); 5.Environment类的FailFast // W
阅读全文