2012-10-14 66 views
1

我正在編寫一個WPF應用程序,它有一個主要的畫布區域,用戶可以在其中打開多個窗口,拖放它們,並通常隨着他/她的喜好將它們移動到應用程序的周圍。如何僅在應用程序內部保留一個窗口?

我到目前爲止所做的工作基本上都是使用Show()方法打開窗口,並且我已將它們隱藏在任務欄中。但是,當主應用程序最小化時,已打開的小窗口都會出現在桌面上。我所看到的基本上是保持應用程序中包含的窗口的一種方法。

這可能嗎?

回答

1

是的,但你需要設計一些基礎設施,以替換MDI用來做(儘管往往是相當嚴重)

所以,當你在你的應用程序打開一個新窗口,將其添加到列表。 關閉時,將其取出 當您的主應用程序最小化時,最小化列表中的所有窗口。

您還可以捕獲子窗口移動事件並將其保留在邊界內,並在主應用程序移動時隨身攜帶子項。對接,級聯,平鋪...

鍵位它可以獲取託管子窗口的此列表。

+0

感謝您的詳細解答。說實話,這似乎有點太多,我認爲應該內置的功能。除了MDI WPF庫,我運氣不好嗎?因爲這不再支持 –

+0

那麼你不必實現這一切,一個接口將給你的基本知識。我不記得上次我使用MDI製造的內容,太多或太少的內容太多。甚至不知道WPF中曾經有過MDI:( –

+0

嗯,它不完全是官方的,它是一個庫:)所以從我所看到的它永遠不會被官方支持。謝謝您的幫助! –

0

你想要做什麼叫做MDI

WPF MDI

+0

是的,我知道這一點。但是,該庫不再受支持並且已過時。我正在嘗試整合問題中提到的功能。 –

相關問題