2011-10-10 43 views
12

終了がキャンセルされるようにWPFアプリケーション終了イベントを処理する方法があるのだろうかと思っていました。使用例としては、サーバーがWPFアプリケーションであるクライアントサーバーの状況があります。 WPFアプリケーションがシャットダウンしているときにクライアントに通知し、シャットダウンプロセスをキャンセルするようにします。クライアントはシャットダウン通知を受け取り、独自の必要なクリーンアップを実行し、WPFアプリケーションに要求を介してシャットダウンを要求する必要があります。WPF終了イベントを処理する

これは可能ですか?

+0

クライアントがサーバーのシャットダウンを要求しない場合はどうしますか? – Paparazzi

答えて

31

あなたはこのようなあなたのメインウィンドウの閉じるイベントをフックすることができます -

<Window Closing="Window_Closing"> 

そして、あなたの場合には、クロージングからウィンドウを停止するためにtrueにe.Cancelを設定します。あなたのケースでは、あなたが彼がクリーンアップでやったという通知を受け取ると設定されるいくつかのフィールドを維持することができます。その値をe.Cancelに設定するだけです。

private void Window_Closing(object sender, CancelEventArgs e) 
{ 
    e.Cancel = true; 
} 
関連する問題