我正在編寫一個WPF應用程序,它有一個主要的畫布區域,用戶可以在其中打開多個窗口,拖放它們,並通常隨着他/她的喜好將它們移動到應用程序的周圍。如何僅在應用程序內部保留一個窗口?
我到目前爲止所做的工作基本上都是使用Show()
方法打開窗口,並且我已將它們隱藏在任務欄中。但是,當主應用程序最小化時,已打開的小窗口都會出現在桌面上。我所看到的基本上是保持應用程序中包含的窗口的一種方法。
這可能嗎?
我正在編寫一個WPF應用程序,它有一個主要的畫布區域,用戶可以在其中打開多個窗口,拖放它們,並通常隨着他/她的喜好將它們移動到應用程序的周圍。如何僅在應用程序內部保留一個窗口?
我到目前爲止所做的工作基本上都是使用Show()
方法打開窗口,並且我已將它們隱藏在任務欄中。但是,當主應用程序最小化時,已打開的小窗口都會出現在桌面上。我所看到的基本上是保持應用程序中包含的窗口的一種方法。
這可能嗎?
是的,但你需要設計一些基礎設施,以替換MDI用來做(儘管往往是相當嚴重)
所以,當你在你的應用程序打開一個新窗口,將其添加到列表。 關閉時,將其取出 當您的主應用程序最小化時,最小化列表中的所有窗口。
您還可以捕獲子窗口移動事件並將其保留在邊界內,並在主應用程序移動時隨身攜帶子項。對接,級聯,平鋪...
鍵位它可以獲取託管子窗口的此列表。
感謝您的詳細解答。說實話,這似乎有點太多,我認爲應該內置的功能。除了MDI WPF庫,我運氣不好嗎?因爲這不再支持 –
那麼你不必實現這一切,一個接口將給你的基本知識。我不記得上次我使用MDI製造的內容,太多或太少的內容太多。甚至不知道WPF中曾經有過MDI:( –
嗯,它不完全是官方的,它是一個庫:)所以從我所看到的它永遠不會被官方支持。謝謝您的幫助! –