WPF - 在父级调整大小时自动重定位子级

时间:2009-12-27 15:19:47

标签: wpf user-controls location containers spacing

我有一个容器,其大小可以改变。

我将通过动态创建用户控件的实例并将它们添加到该容器中。 用户控件的大小是固定的。我想要做的是,在容器中容纳最多的用户控件。

我认为一个好的方法是水平添加子项,直到没有更多的空间来添加另一行,然后再开始另一行。

比如说,对于容器的给定宽度,每行适合3个孩子。如果它足够扩展,它应该自动适合连续4个孩子。

是否有可用于托管这些用户控件的容器控件(StackPanel Grid等)。需要更改哪些属性。

在调整容器大小时,应重新定位子容器,以便显示最大子容器。只要在任何给定时间显示最大值,滚动就可以。

是否有自动执行此操作的容器?或者我应该手动创建行或面板或其他东西,并为每个添加 n 子项 - 即手动执行?

2 个答案:

答案 0 :(得分:1)

我认为您需要的是WrapPanel

Panels Overview on the MSDN有更多信息和指向Panel特定类型的链接,包括WrapPanel

  

WrapPanel将子元素从左到右按顺序排列,将内容分解为包含框边缘的下一行。后续排序从上到下或从右到左依次发生,具体取决于Orientation属性的值。

答案 1 :(得分:0)

  

我认为一个好的方法是水平添加子项,直到没有更多的空间来添加另一行,然后再开始另一行。

这正是WrapPanel的作用。