如何使WPF包装子项目伸展?

时间:2011-11-04 04:48:02

标签: wpf xaml custom-controls itemscontrol wrappanel

我想创建一个ItemsControl,其子项目的放置方式与WrapPanel类似,但子项目应占用尽可能多的空间。因此,当窗口大小变大或变小时,子项应根据特定的宽度:高度比进行拉伸。当从ItemsControl的{​​{1}}添加或删除子项时,ItemsSource应在项目之间放置换行符以保持子项目的宽度:高度比。 以下是我到目前为止的情况。是否可以在Xaml中执行此操作?或者我应该为此创建自定义控件?提前谢谢!

WrapPanel

4 个答案:

答案 0 :(得分:14)

使用UniformGrid而不是WrapPanel。只需使用Columns属性设置所需的列数,它就会为您提供所需的结果。

答案 1 :(得分:4)

作为另一种解决方案(有时宽度可能不同,因此Preston,55.8091,-2.3364 Reston,55.85201,-2.1973 Sinclair's Hill,55.74975,-2.29538 St Abbs,55.89951,-2.13229 不起作用),这里修改UniformGrid,它会拉伸元素以适合线条(同时保持比例相同):

WrapPanel

行动中:

List of stretched tags

答案 2 :(得分:0)

您是否尝试过itemscontrol中的Horizo​​ntalContentAlignment =“Stretch”属性。

答案 3 :(得分:0)

要实现所需的行为,您可以尝试使用Width的{​​{1}}或MaxWidth属性,例如通过这种方式

WrapPanel

有效 enter image description here