Handle a WPF Exit Event
Asked Answered
G

2

16

I was wondering if there was a way to handle a WPF Application Exit event such that the exit was cancelled. The use case is that I have a client-server situation where the server is a WPF app. I want the WPF app to notify the client when it is shutting down, but cancel the shutdown process. The client should receive the shutdown notification, do its own required cleanup and then ask the WPF app to shutdown via a request.

Is this possible?

Glyptograph answered 10/10, 2011 at 18:48 Comment(1)
What do you do if the client does not ask the server to shut down?Declarant
P
35

You can hook the event Closing on your main window like this -

<Window Closing="Window_Closing">

And in your event set the e.Cancel to true to stop the window from closing. In your case you can maintain some field which will be set once you get notification from client that he's done with cleanUp and its safe now to close the window. Simply set that value to e.Cancel

private void Window_Closing(object sender, CancelEventArgs e)
{
   e.Cancel = true;
}
Potboy answered 10/10, 2011 at 19:4 Comment(0)
T
0

If you want stop the operating system being shut down, or at least clean up before it does, you need to handle the Application.SessionEnding.

Related: Handling System Shutdown in WPF

Toland answered 21/4, 2018 at 9:36 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.