有一个 WPF 应用程序。
我想在应用程序关闭时登录。
但我不能修改应用程序(一些限制,只是因为业务)。
所以我在现有应用程序中创建了一个不可见的表单组件,添加为 dll 库,因此不需要修改现有应用程序。
但问题是,我的隐形组件如何知道应用程序正在关闭?
我可以使用一些函数或事件处理程序吗?
解决方案:
有一些事件可以做到这一点,
卸载 关闭 关闭
当主窗口将要关闭时,所有这三个事件都将被触发。
问题解决了
该类System.Windows.Window
有一个OnClosing(CancelEventArgs)
可以为此重写的虚拟方法和一个Closing
可以处理的事件。
我通常捕获这些事件并将信息传递给Page
类,遗憾的是,这些类不包含此类方法或事件。
每个窗口在关闭时都会触发这些方法,因此没有必要在父窗口和子窗口之间连接任何消息。而且,我相信,任务管理器将首先尝试正常关闭应用程序,这将导致关闭事件触发,除非其他东西,如对话框,阻止它。只有在尝试之后,TM 才会询问是否要为应用程序执行异常结束,这显然会绕过 Closing 事件。
你检查过 FormClosing 事件吗?
我仍然没有 WPF 的知识,但我从 winforms 知道,有一个Closing
来自Form
类的事件,您可以捕获并显示对话框“此应用程序正在退出,您是否希望继续等”,并设置Cancel
标志为 true 中止关闭表单,也有ApplicationExit
来自Application
类的事件,如果你想处理应用程序的关闭,你可以捕获它。
希望这会有所帮助,最好的问候,汤姆。