WPF缩小儿童小组

时间:2009-09-28 00:09:54

标签: resize

我正在为WPF应用程序创建UI。我在我的窗口堆栈面板里面有一些扩展器。在每个Expander中都有一些控件,一个是List Box。我想要做的是在调整窗口大小时让列表框调整大小(缩小或增大)。此刻,当我重新调整大小时,扩展器会被剪掉,但列表框(有时非常长)保持不变。我该如何实现这一目标。

一个很好的例子是在Outlook 2007中,左侧的“邮件文件夹”缩小了窗口大小,但其他控件没有缩小。

提前致谢。

2 个答案:

答案 0 :(得分:0)

StackPanel不会在其子项上移动高度 - 它允许每个孩子的大小尽可能大。您可以尝试在扩展器周围使用网格,并为每个行提供星形高度,以便内容调整大小。

答案 1 :(得分:0)

谢谢保罗,

我自己发现了一些有趣的东西。 我用一个简单的方法扩展了网格控制,当扩展器扩展时会触发,我会称之为。


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

这非常有效。