3

有一个 WPF 应用程序。

我想在应用程序关闭时登录。

但我不能修改应用程序(一些限制,只是因为业务)。

所以我在现有应用程序中创建了一个不可见的表单组件,添加为 dll 库,因此不需要修改现有应用程序。

但问题是,我的隐形组件如何知道应用程序正在关闭?

我可以使用一些函数或事件处理程序吗?

解决方案:

有一些事件可以做到这一点,

卸载 关闭 关闭

当主窗口将要关闭时,所有这三个事件都将被触发。

问题解决了

4

3 回答 3

4

该类System.Windows.Window有一个OnClosing(CancelEventArgs)可以为此重写的虚拟方法和一个Closing可以处理的事件。

我通常捕获这些事件并将信息传递给Page类,遗憾的是,这些类不包含此类方法或事件。

每个窗口在关闭时都会触发这些方法,因此没有必要在父窗口和子窗口之间连接任何消息。而且,我相信,任务管理器将首先尝试正常关闭应用程序,这将导致关闭事件触发,除非其他东西,如对话框,阻止它。只有在尝试之后,TM 才会询问是否要为应用程序执行异常结束,这显然会绕过 Closing 事件。

于 2010-01-21T23:23:22.607 回答
0

你检查过 FormClosing 事件吗?

于 2010-01-21T23:16:37.247 回答
0

我仍然没有 WPF 的知识,但我从 winforms 知道,有一个Closing来自Form类的事件,您可以捕获并显示对话框“此应用程序正在退出,您是否希望继续等”,并设置Cancel标志为 true 中止关闭表单,也有ApplicationExit来自Application类的事件,如果你想处理应用程序的关闭,你可以捕获它。

希望这会有所帮助,最好的问候,汤姆。

于 2010-01-21T23:17:04.203 回答