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