0

短い質問がありますが、しばらくウェブを検索しても答えが見つかりません。WPFアプリケーションに2つのウィンドウがあります。ユーザーがウィンドウを閉じるときに、1つのウィンドウを非表示にする必要があります。メインウィンドウを閉じると、アプリケーション全体が閉じます。

使用しました

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

2番目のウィンドウのクラス内で、Close()イベントをキャッチすることを望んでいましたが、残念ながら、すべてのClose()イベントをキャッチします。

イベントを個別に処理するためにウィンドウを分離するにはどうすればよいですか?

よろしくラリモウ

4

1 に答える 1

1

senderパラメータを使用します。それが目的です。

window1.Closing += Window_Closing;
window2.Closing += Window_Closing;

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
    var w = (Window)sender;

    // Simple ref test to illustrate, but you can use anything else you want instead
    if (w == window1) {
        e.Cancel = true;
        w.Hide();
    }
}
于 2012-07-11T11:17:28.350 に答える