WPF-APP全局生命周期事件

发布于:2025-02-16 ⋅ 阅读:(93) ⋅ 点赞:(0)

关于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;
}