0

疑似コードでは、メイン ウィンドウから独立して開閉できる多くの非モーダル サブウィンドウを使用して、これをメイン ウィンドウから実行しようとしています。(「設定」または「検索」と考えてください)

「OPEN WINDOW」を押し
た場合 STEP 1: ウィンドウが存在しない場合は、ウィンドウを作成します。
STEP2:ウィンドウができたので、前面に持ってきて見えるようにします。
(ステップ 2 は、ウィンドウが既に開いているときに OPEN WINDOW が押された場合の注意事項です。複数のインスタンスは必要ありません。前面に移動するだけです。)

「CLOSE WINDOW」を押し
た場合 STEP 3: ウィンドウを閉じる
ALT STEP 3: ウィンドウを隠す

これは私が試したコードです。窓を開けて、窓を開けたまま再度OPEN WINDOWを押せば手前に持ってくるところまできました。ただし、ウィンドウを閉じると、もう一度開くことはできません。ウィンドウを閉じると Window.Show() を使用できないというエラーが表示されます。

public static void OpenWindowOnce(Window windowToOpen)
    {
        foreach (Window n in Application.Current.Windows)
        {
            //Checks if the window is already open, and brings it to the front if it is
            if (n.GetType() == windowToOpen.GetType())
                {}                    
            else
                {  windowToOpen.Show(); }
        }

        windowToOpen.Activate();
    }

コード/ロジックのどこが間違っていますか? ありがとう、私はコーディングにかなり慣れていないので、これを正しく行うために何週間も費やしました.

4

1 に答える 1