WPF Window最小化ボタン処理のフック
[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; } } } }