2016-05-02 65 views
0

私はWPFモーダルウィンドウの標準的な動作であるため、これを行う方法がないので、stackoverflowのいくつかの記事を検索し、いくつかのディスカッションを終了しました。C#WPF)子モーダルウィンドウがshowdialog()によって示された後、親ウィンドウを最小化する方法は?

モーダルの子ウィンドウから親ウィンドウを最小化(制御)するソリューションはありませんか?

往復をハッキングしたり知っている人はいますか?

あなたの素晴らしいアイデアは常に高く評価されます。

ありがとうございました!

+1

親ダイアログへの参照と 'parent.WindowState = WindowState.Minimized'を渡してみましたか? –

+0

親愛なる天皇、貴重な時間とコメントをいただきありがとうございます! –

答えて

2

アプリケーションウィンドウのコレクションを使用してウィンドウの参照を取得できます。これは私の例では親ウィンドウでメインウィンドウを最小化する例を示します。

private void button_Click(object sender, RoutedEventArgs e) 
    { 
     foreach (Window win in Application.Current.Windows.OfType<MainWindow>()) 
     { 
      var mainWin = ((MainWindow)win); 
      mainWin.WindowState = mainWin.WindowState == WindowState.Minimized ? WindowState.Normal : WindowState.Minimized; 
     } 
    } 

あなただけの最小化にウィンドウ状態を設定することができます。

ウィンドウを取り除きたい場合は、.Hide();を使用し、それをagian .Show();と表示してください。

+0

このシナリオでは、一度親ウィンドウが最小化されると回復できません。 –

+0

'.Hide();' => Yesを使用すると、 '.Show(); 'を介してClosedイベントで再び表示できます。それで、私があなたが書いた理由は、WindowStateを使うことができます。それで、それはなくなっていません。 –

+0

はい、私はそれを得る..私はあなたの答えをupvoted :) –

関連する問題