2012-03-23 48 views
1

在我以前的應用程序之一,我需要控制添加到一個WinForms項目FlowLayoutPanel的動態,但我需要他們停止加載曾經有在沒有更多的空間面板讓他們適應。在總結面板停止加載控件一旦它的「全」

要做到這一點,我寫:https://github.com/LucasMoffitt/WordFiller/blob/master/WordFiller.Controls/WordLayoutPanel.cs

這基本上只是將屬性設置爲false,如果入站控制倒是一個矩形我在面板的底部繪製。

雖然試圖複製這種行爲在WPF我找不到任何方式,我可以強制WrapPanel停止服用對照,如果它的全部。

我已經嘗試重寫安排和測量方法,但他們只得到調用一次所有的控制已被添加。我需要能夠停止加載控件。

任何人有任何想法?

回答

0

所以我最終採取的一些建議和到達此:

https://github.com/LucasMoffitt/CustomWrapPanel

基本上這是我在做什麼,開始有一點點整潔,並有演示應用程序。

我鼓勵所有的貢獻,如果有人發現這樣做的更好的方式!

0

你可以檢查ActualHeight/AcxtualWidthDesiredHeight/DesiredWidth。當DesiredHeight變得大於ActualHeight - 面板開始重疊。

+0

我什麼時候會檢查它?我不得不跟蹤到目前爲止已添加的內容。 – Lucas 2012-03-23 07:42:52

+0

如果您要動態添加控件,那麼您有一些代碼,在每次添加之間,您應該檢查屬性。 – 2012-03-23 08:12:27

+0

感謝您的幫助。我想到了你說了什麼,並用一些不同的方法進行了遊戲,請看下面的答案!再次感謝! – Lucas 2012-03-29 08:21:17