WPF中的Application类

2025-01-12T00:00:00Z | 2分钟阅读 | 更新于 2025-01-12T00:00:00Z

@
WPF中的Application类

定义

Application类在WPF中程序中代表了当前的应用程序对象,等应用程序对象创建出来以后,可以在程序的任何位置用Application.Current的方式获取该对象。下面先来罗列一下Application提供的属性、方法和事件。

主要属性

Current

类型:System.Windows.Application 在当前的应用域(AppDomain唯一的应用对象),从触发OnStartup事件之后程序的全局位置都可以获取。

MainWindow

类型:System.Windows.Window 一个窗口对象,代表着应用程序的主窗口,没有显式设置的情况,MainWindow属性等于第一个弹出来的窗口对象,后续可以按需设置其他的窗口。

Properties

类型:IDictionary 应用程序的属性集合。可以存储一些全局的<k,v>属性信息

//类似于这种全局的信息
Application.Current.Properties.Add("lang", "en-US");
Application.Current.Properties.Add("version", "1.0.0");

Resources

类型:ResourceDictionary 可以获取或设置应用程序的资源字典。

<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="MainWindow.xaml">
  <Application.Resources>
    <SolidColorBrush x:Key="BackgroundColor" Color="Yellow"></SolidColorBrush>
  </Application.Resources>
</Application>

ShutdownMode

类型:是枚举类型(默认值是0,即OnLastWindowClose——)

  • OnLastWindowClose——最后一个窗口对象关闭时,退出程序
  • OnMainWindowClose——主窗口关闭时,退出程序
  • OnExplicitShutdown——只有显式的关闭时,才退出程序

获取或设置应用程序的关闭模式。

Windows

类型:WindowCollection 获取应用程序的窗口集合。当一个window对象在UI线程上初始化之后会添加到这个集合中,在处理完Closing事件之后会移除。

主要方法

OnActivated

  • 应用程序启动的时
  • 从最小化回来的时候也会被调用

OnDeactivated

  • 关闭程序的时
  • 程序最小化

OnExit

最后程序退出之前调用,可以做一些资源回收的事情。类似于python中的atexit模块

Shutdown

显式的关闭当前进程

WPF程序的生命周期

WPF程序的生命周期 The remaining content of your post.

© 2026 火箭的博客

🌱 Powered by Hugo with theme Dream.

爱好
  • 三国演义:从大二开始听评书版的《三国演义》,现在主要是作为睡前小故事来听(我估计是第七八遍了)
  • 写代码:没错,写代码也是我的爱好。只要出门超过半天,我基本都会背着笔记本,随时可能进入“编码模式”。
  • 健身:曾经的爱好。结婚之后就逐渐被抛弃了 🤷,结婚一年涨了10斤。
  • 看电影:后续可能会写影评。
  • 探索新事物和工具:准备开一个主题,专门分享我接触到的各种新玩意儿。
关于我

👋 你好,我是 huojian (火箭)

欢迎来到我的个人博客!建立这个小站的初衷,是想在浩瀚的互联网中拥有一块属于自己的“数字花园”。我经常从各类优秀的博客中汲取养分,现在,我也想成为那个输出和分享的人。

这里没有刻板的文章更新 KPI,更多的是我个人的技术沉淀、学习笔记以及生活碎片的真实记录。

👨‍💻 关于我与我的技术栈

我是一名客户端软件工程师,日常与代码和系统架构打交道。在技术探索的道路上,我享受解决复杂问题带来的成就感,也喜欢折腾各种能提升幸福感的工具。

在这里,你可能会看到我分享以下内容:

  • 💻 开发与架构探讨: 探讨 WPF/C# 领域的开发经验、代码质量优化,以及诸如客户端热修复 (Hotfix) 系统设计等我在实际项目中遇到并解决的挑战。
  • 🛠️ 工作流与跨平台折腾: 记录我游走在 Windows 与 macOS 环境下的效率心得。从外设配置到好用的跨平台开发工具,分享如何打造顺手的生产力环境。
  • 🐳 自托管与数字生活: 我是个“自建服务”爱好者。会不定期掉落关于 Docker 部署、云服务器折腾指南,以及如何搭建属于自己的 RSS 阅读环境等教程。
  • 📝 学习笔记与自我精进: 记录各种技术学习心得。同时,我也在持续死磕英语,努力提升口语和写作能力,告别“哑巴英语”,相关的学习路径和思考也会记录在这里。

💡 我的理念

“Talent is enduring patience.” (才能即是长久的忍耐)

我相信持续输出的力量。无论是深度的技术解析,还是一个简单的开发踩坑记录,亦或是一篇普通的生活随笔,都是打造个人 IP 与技术影响力的基石。

📬 建立连接

非常高兴能在这里与同样喜欢写代码、喜欢阅读的你相遇。如果你对我的文章有共鸣,或者想交流技术与生活,欢迎随时找我:

  • GitHub: @huojian-jan
  • RSS 订阅: 欢迎通过博客右上角的 RSS 订阅我的最新文章。
记录什么?
  • 学习笔记

  • 一些想法:记录日常思考,不一定有结论,更像是一种随手的表达。

  • 旅游与随笔:旅行时的见闻与感受,以及偶尔的文字随笔。