私のアプリケーションは、多くのウィンドウを連続してジャンプする必要があるような性質のものです。メニューウィンドウから(選択範囲から)別のウィンドウを開き、メニューウィンドウを無効にするか閉じる必要があります。
私が現在使用しているのはwindow.showで、次にthis.close()メソッドを使用してメニューウィンドウを閉じます。
元:
private void MainMenuControl_Link1MouseDown(object sender, RoutedEventArgs e)
{
// Utilities
UtilitiesMenyWindow UtilitiesMenyWindow = new UtilitiesMenyWindow(); // Assign Variable to window
UtilitiesMenyWindow.Show(); // Open window
this.Close(); // close current window
}
次に、新しいウィンドウ内から、同じ方法を使用してMainMenuウィンドウを再度開きます。
private void Utilities_Link3MouseDown(object sender, RoutedEventArgs e)
{
// Return to Main
MainMenuWindow MainMenu = new MainMenuWindow(); // Assign Variable to window
MainMenu.Show(); // Open Main window
this.Close(); // close login window
}
次に、静的変数を含むパブリック変数クラスを保持して、すべてのウィンドウに共通するすべての変数を格納します。
1つの障害を除いて、これはすべて正常に機能しています。(MainWindowではなく)別のウィンドウからUtilitiesMenyWindowを呼び出すと、開いたウィンドウではなくMainMenuに戻ります。
セカンダリウィンドウを開いたウィンドウに戻るために、それ自体を閉じて特定のウィンドウを開くように指示する必要がない、より簡単で一般的な方法はありますか(この場合、メインメニューに「ハードコード」されています)(明らかに、最初に開いてから閉じます)
Unloadedイベントを見ていましたが、このイベントが発生するまで元のウィンドウを非表示のままにして、そこに座ってループで待機する必要がないようにするにはどうすればよいですか。これはお勧めできません。たぶん誰かが、イベントハンドラーを「起動」して前のウィンドウをアクティブにする自動イベントとして設定する方法を教えてくれますか?