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