处理WPF退出事件

问题描述 投票:15回答:2

我想知道是否有办法处理WPF应用程序退出事件,以便取消退出。用例是我有一个客户端 - 服务器情况,其中服务器是WPF应用程序。我希望WPF应用程序在关闭时通知客户端,但取消关闭过程。客户端应该收到关闭通知,执行自己需要的清理,然后通过请求请求WPF应用程序关闭。

这可能吗?

wpf events client-server exit
2个回答
33
投票

您可以像这样挂钩主窗口上的Closing事件 -

<Window Closing="Window_Closing">

在您的活动中,将e.Cancel设置为true以阻止窗口关闭。在您的情况下,您可以维护一些字段,一旦您收到客户通知他已完成cleanUp并立即安全关闭窗口,将设置该字段。只需将该值设置为e.Cancel即可

private void Window_Closing(object sender, CancelEventArgs e)
{
   e.Cancel = true;
}

0
投票

如果你想要停止操作系统关闭,或至少在它之前清理,你需要处理Application.SessionEnding

相关:Handling System Shutdown in WPF

© www.soinside.com 2019 - 2024. All rights reserved.