2学习Application

Application对象事件

名称 说明
Activated 当应用程序成为前台应用程序时触发
Deactivated 当应用程序不再是前台应用程序时触发
DispatcherUnhandledException 如果异常时由应用程序引发,但未处理时,触发
Exit 在应用程序关闭之前,触发,而且不能撤销
FragmentNavigation 发生在应用程序的一个浏览器启动导航时,会立即发生,
如果所需片段在当前目录,或者在源XAML目录加载后,如果所需片段在其他内容。
LoadCompleted 在导航到在应用程序中的一个浏览器的目录加载的分析完成并已呈现时触发
Navigated 当导航到在应用程序中使用的浏览器已找到的内容时触发,这时它可能还没有完成加载
Navigating 在一个新的导航由应用程序,一个浏览器请求发生时
NavigationFailed 出现问题,则错误,当应用程序的一个浏览器导航到所请求的内容时
navigationProgress 定期发生在应用程序中使用浏览器管理提供导航进度信息的下载过程
NavigationStoped 发生在一个浏览器的StopLoading方法在应用程序的调用,或者,如果新的导航由浏览器请求,在当前导航正在进行的。
SessionEnding 当用户在注销或关闭操作系统关闭Windows会话时发生
Startup 当Application对象的Run方法调用时发生

在应用程序中添加事件

1.在App。xaml中做事件的绑定,在App.xaml.cs文件中添加事件的处理方法

添加完事件之后的app.xaml文件代码如下

</Application.Resources>

在App.xaml.cs文件的代码如下



public partial class App : Application

{

private void Application_Activated(object sender, EventArgs e)

{

Record.Add(nameof(this.Application_Activated));

}
    private void Application_LoadCompleted(object sender, NavigationEventArgs e)
{
Record.Add(nameof(this.Application_LoadCompleted));
} private void Application_Deactivated(object sender, EventArgs e)
{
Record.Add(nameof(this.Application_Deactivated));
} private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
Record.Add(nameof(this.Application_DispatcherUnhandledException));
} private void Application_Exit(object sender, ExitEventArgs e)
{
Record.Add(nameof(this.Application_Exit));
} private void Application_FragmentNavigation(object sender, FragmentNavigationEventArgs e)
{
Record.Add(nameof(this.Application_FragmentNavigation));
} private void Application_Navigated(object sender, NavigationEventArgs e)
{
Record.Add(nameof(this.Application_Navigated));
} private void Application_Navigating(object sender, NavigatingCancelEventArgs e)
{
Record.Add(nameof(this.Application_Navigating));
} private void Application_NavigationFailed(object sender, NavigationFailedEventArgs e)
{
Record.Add(nameof(this.Application_NavigationFailed));
} private void Application_NavigationProgress(object sender, NavigationProgressEventArgs e)
{
Record.Add(nameof(this.Application_NavigationProgress));
} private void Application_NavigationStopped(object sender, NavigationEventArgs e)
{
Record.Add(nameof(this.Application_NavigationStopped));
} private void Application_SessionEnding(object sender, SessionEndingCancelEventArgs e)
{
Record.Add(nameof(this.Application_SessionEnding));
} private void Application_Startup(object sender, StartupEventArgs e)
{
Record.Add(nameof(this.Application_Startup));
}
}
</pre>
<p>WPF应用程序生存周期</p>
<img src="https://images0.cnblogs.com/blog2015/10343/201505/041228235951394.png" alt="">
<p>
记录执行顺序
<ul>
<li>
2019/5/14 9:43:02:Application_Startup
</li>
<li>
2019/5/14 9:43:02:Application_Navigating
</li>
<li>
2019/5/14 9:43:02:Application_Activated
</li>
<li>
2019/5/14 9:43:03:Application_Deactivated </li>
<li>
2019/5/14 9:43:03:Application_Exit
</li>
</ul>
</p>
<h1 id="application">Application属性/方法</h1>
  • Application的MainWindow属性存储第一个new出来的Window
  • 设置ShutdownMode的属性值为ShutdownMode.OnLastWindowClose,则关闭主窗体是关闭不了应用程序的,需要关闭所有打开的窗口,每次New 出窗体时,都会往Application的Windows中加入,那么关闭所有窗体,也就是需要关闭Application的Windows属性中的所有窗体。
  • Resources属性存储资源
  • StartupUri用于自动启动一个窗体
  • Properties可以存储全局的一些配置信息
  • GetResourceStream(Uri uriResource);可以获取资源文件,例如添加了一个图片文件,并且设置这个图片的生成操作为Resource。那么就可以使用该静态方法获取到这个图片了。
Uri uri = new Uri("/1.png", UriKind.Relative);
StreamResourceInfo info = Application.GetResourceStream(uri);
string str = info.ContentType;//内容类型
Stream stream = info.Stream;//图片资源流
  • GetContentStream(uri);可以获取内容文件,不过实际这种内容一般都是在应用程序目录里面的,使用File类也可以获取到的。用法:添加一个图片文件,设置生成操作为内容,并且将复制到输出目录设置为始终复制或如果较新则复制。那么使用方法和GetResourceStream类似了。
Uri uri = new Uri("/1.png", UriKind.Relative);
StreamResourceInfo info = Application.GetContentStream(uri);
string str = info.ContentType;//内容类型
Stream stream = info.Stream;//图片资源流
  • GetRemoteStream(uri);也是获取内容,不过它与GetContentStream的差别是,文件属性的生成操作设置为无的时候使用,用法类似。
Uri uri = new Uri("/1.png", UriKind.Relative);
StreamResourceInfo info = Application.GetRemoteStream(uri);
string str = info.ContentType;//内容类型
Stream stream = info.Stream;//图片资源流
  </div>
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>

2.学习Application的更多相关文章

  1. WPF入门教程系列三——Application介绍(续)

    接上文WPF入门教程系列二——Application介绍,我们继续来学习Application 三.WPF应用程序的关闭 WPF应用程序的关闭只有在应用程序的 Shutdown 方法被调用时,应用程序 ...

  2. Android学习之路——简易版微信为例(一)

    这是“Android学习之路”系列文章的开篇,可能会让大家有些失望——这篇文章中我们不介绍简易版微信的实现(不过不是标题党哦,我会在后续博文中一步步实现这个应用程序的).这里主要是和广大园友们聊聊一个 ...

  3. Android 4学习(1):学习路线图

    学习路线图 如下图所示,整个Android的架构可以分为四层,五个部分.我给自己制定的学习路线图是这样的: 对于有java基础的入门级android开发者而言,首先要学会使用Application F ...

  4. Android NDK编程之Android.mk和Application.mk

    Android编程使用NDK必须创建一个jni文件夹,并且jni文件里一般包含有C/C++的源码文件.Android..mk文件.Application.mk文件(可选),Android.mk文件的编 ...

  5. Adaptive AUTOSAR 学习笔记 6 - 架构 - 方法论和 Manifest

    本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...

  6. J2EE笔记3

    7. MVC 设计模式. 6. 和属性相关的方法: 1). 方法 void setAttribute(String name, Object o): 设置属性 Object getAttribute( ...

  7. 深入浅出MFC——MFC六大关键技术仿真(二)

    1. 仿真MFC目的:以MFC为例,学习application framework的内部运行.MFC六大关键技术: (1)MFC程序的初始化过程 (2)RTTI(Runtime Type Inform ...

  8. JAVA-JSP隐式对象

    JSP隐式对象 在本章中,我们将讨论和学习JSP中的隐式对象.这些对象是JSP容器为每个页面中的开发人员提供的Java对象,开发人员可以直接调用它们而不用显式地声明它们再调用. JSP隐式对象也称为预 ...

  9. Jsp入门第一天

    1. JSP: 1). WHY: JSP 是简 Servlet 编写的一种技术, 它将 Java 代码和 HTML 语句混合在同一个文件中编写,只对网页中的要动态产生的内容采用 Java 代码来编写, ...

随机推荐

  1. APUE学习之进程控制 - fork 与 vfork

    最后编辑: 2019-11-6 版本: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) 一.进程标识 每一个进程都有一个唯一的非 ...

  2. JS框架_(Qrcode.js)将你的内容转换成二维码格式

    百度云盘 传送门 密码:304e 输入网址点击按钮生成二维码,默认为我的博客首页 二维码格式演示 <!DOCTYPE html> <html lang="en"& ...

  3. C++入门经典-例5.13-内存安全,被销毁的内存

    1:当指针所指向的内存被销毁时,该区域不可复用.若有指针指向该区域,则需要将该指针置为空值(NULL)或者指向未被销毁的内存. 内存销毁实质上是系统判定该内存不是变成人员正常使用的空间,系统也回将它们 ...

  4. CentOS 6.4编译安装和部署Zabbix 2.0版本监控(中文)

    [一].zabbix简介 zabbix是一个基于web界面的提供分布式系统监视以及网络监视功能的企业级开元解决方案 zabbix由2部分构成,zabbix_server和可选组件zabbix_agen ...

  5. sqlToolbox 1.82 Beta版 下载

    下载链接:https://pan.baidu.com/s/1jCTRe0NGgEb5qF3BDN_jTQ 久违的回忆. 2019年8月30日13点43分

  6. JAVA初级面试题,附个人理解答案

    一,面向对象的特征:1.抽象 包括数据抽象跟行为抽象,将对象共同的特征取出形成一个类2.继承 被继承类为基类/超类,继承类为子类/派生类3.封装 多次使用道德数据或方法,封装成类,方便多次重复调用4. ...

  7. python字符串判断

    s为字符串 s.isalnum() 所有字符都是数字或者字母 s.isalpha() 所有字符都是字母 s.isdigit() 所有字符都是数字 s.islower() 所有字符都是小写 s.isup ...

  8. 2 Configuring SAP ERP Sales and Distribution -introduction to SAP

    First Steps in SAPWe’ll now discuss some of the basic menus, screens, and transactions that you need ...

  9. crond服务总结

    昨天翻阅程序发现服务器端管理程序的启动方式很特别,在之前是由init进程启动程序脚本里的进程,昨天发现服务程序并没有在任何脚本中有启动的体现,但是服务程序确实是启动了,经过一番查找发现原来是crond ...

  10. Opencv中copyTo()函数的使用方法

    在Mat矩阵类的成员函数中copyTo(roi , mask)函数是非常有用的一个函数,尤其是后面的mask可以实现蒙版的功能,我们用几个实例来说明它的作用.我们要注意mask的数据类型,必须是CV_ ...