WPF-APP全局生命周期事件
关于WPF事件
生命周期事件、输入事件(框架提供)、路由事件、行为
生命周期事件
APP生命周期
Startup、Navigating、LoadCompleted、Navigated、NavigationFailed、NavigationProgress、NavigationStopped、SessionEnding、Activated、Deactivated、Exit
事件名称 | 作用 |
---|---|
Startup | WPF启动是应用程序首次启动时发生的事件 |
Navigating | 导航是应用程序导航到新页面或窗口时发生的事件 |
LoadCompleted | LoadCompleted是页面或窗口完成加载时发生的事件 |
Navigated | 导航是应用程序成功导航到新页面或窗口时发生的事件 |
NavigationFailed | NavigationFailed是应用程序无法导航到新页面或窗口时发生的事件 |
NavigationProgress | NavigationProgress是在导航过程中发生的事件,报告导航的进度 |
NavigationStopped | NavigationStopped是应用程序停止导航到新页面或窗口时发生的事件 |
SessionEnding | 在用户通过注销或者关闭操作系统而结束WIndows会话时发生 |
Activated | 激活是应用程序激活时发生的事件,这意味着它获得焦点并成为活动窗口 |
Deactivated | 停用是应用程序失去焦点且不再是活动窗口时发生的事件 |
Exit | 退出是应用程序关闭时发生的事件,允许应用程序执行任何必要的清理任务 |
全局异常捕获
事件名称 | 作用 |
---|---|
this.DispatcherUnhandledException | 在异常由应用程序引发但未进行处理时发生,UI线程无法捕获多线程异常 |
AppDomain.CurrentDomain.UnhandledException | 专门捕获所有线程中的异常 |
TaskScheduler.UnobservedTaskException | 专门捕获Task异常 |
public App()
{
//在异常由应用程序引发但未进行处理时发生。UI线程
//无法捕获多线程异常
this.DispatcherUnhandledException += App_DispatcherUnhandledException;
//专门捕获所有线程中的异常
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
//专门捕获Task异常
TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
}