2009-09-28 22 views
1

我正在爲WPF應用程序創建UI。我在窗口內部有一些擴展器。在每個Expander中都有一些控件,其中一個是List Box。我想要做的是調整窗口大小時調整窗口大小(縮小或增大)。目前,當我重新調整大小時,擴展器被截斷,但列表框(有時非常長)保持不變。我如何去做到這一點。WPF縮小的子面板

一個很好的例子是在Outlook 2007中,左側的「郵件文件夾」隨窗口大小縮小,但其他控件不收縮。

在此先感謝。

+0

更具體地說,我會在哪裏開始創建類似於Outlook的左側面板,即。當您重新調整菜單欄的大小時,這些按鈕被隱藏,並且圖標被添加到底部。 – 2009-09-28 02:10:06

回答

0

謝謝Paul,

我發現了一些有趣的東西。 我已經用一個簡單的方法擴展了網格控件,這個方法在擴展器展開時觸發,我會調用它。

 

RowDefinitions[GetRow(expander)].Height = (expander != selectedExpander) ? 
    new GridLength(1, GridUnitType.Auto) : 
    new GridLength(1, GridUnitType.Star); 

這個工作非常漂亮。

0

StackPanel不會在其子級上推高 - 它允許每個孩子的尺寸儘可能大。您可以嘗試在擴展器周圍使用網格,併爲每個行賦予一個星形高度,以便調整內容大小。