2011-10-10 11 views
12

Mi chiedevo se esistesse un modo per gestire un evento di uscita dell'applicazione WPF in modo che l'uscita fosse annullata. Il caso d'uso è che ho una situazione client-server in cui il server è un'app WPF. Voglio che l'app WPF notifichi al client quando si sta spegnendo, ma annulla il processo di spegnimento. Il client dovrebbe ricevere la notifica di spegnimento, eseguire la pulizia richiesta e quindi chiedere all'app WPF di spegnersi tramite una richiesta.Gestire un evento di uscita WPF

È possibile?

+0

Cosa si fa se il client non chiede al server di spegnersi? – Paparazzi

risposta

31

È possibile associare l'evento di chiusura sulla finestra principale come questo -

<Window Closing="Window_Closing"> 

E nel vostro evento impostare l'e.Cancel su true per fermare la finestra dalla chiusura. Nel tuo caso puoi mantenere un campo che verrà impostato una volta che avrai ricevuto la notifica dal cliente che ha finito con cleanUp e che ora è sicuro di chiudere la finestra. Impostare semplicemente tale valore su e.Cancel

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