WPF Window最小化ボタン処理のフック

[WPF Tips]

WPF アプリケーション作成で得たTipsをメモ

1.状況

モーダルダイアログウィンドウを作成し、時間のかかる処理の状況を表示させるのだが、最小化してもダイアログだけ最小化されてしまう。呼び出し側のウィンドウも併せて最小化させたい。

2.対応

モーダルウィンドウ表示時に、Ownerプロパティにメインウィンドウをセット、ウィンドウのステート変更をフックし、ダイアログが最小化された場合、Ownerも最小化する。

3.参考

4.サンプル

public partial class ProgressDialog : Window
{
    public ProgressDialog()
    {
        InitializeComponent();
        this.StateChanged += new EventHandler(Window_StateChanged);
    }

    void Window_StateChanged(object sender, EventArgs e)
    {
        if (this.WindowState == WindowState.Minimized)
        {
            if (this.Owner != null)
            {
                this.Owner.WindowState = WindowState.Minimized;
            }
        }
    }
}

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です