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
