2011-10-10 163 views
12

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

这可能吗?

+0

如果客户端不要求服务器关闭,你会怎么做? – Paparazzi

回答

31

您可以挂钩事件关闭主窗口上这样的 -

<Window Closing="Window_Closing"> 

而在你的事件设置e.Cancel为true,从关闭停止窗口。在你的情况下,你可以维护一些字段,一旦你从客户端收到通知,他已经完成了cleanUp及其安全现在关闭窗口,将设置一些字段。只需将该值设置为e。取消

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