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;
- }
- }
- }
- }