以下示例中的标签(WPF / XAML)只是在屏幕上游行,不会发生包装。删除方向有效,但没有提供所需的功能/外观&感觉。任何想法如何使WrapPanel
换行到StackPanel
的当前大小?
<Window Height="300" Width="600">
<StackPanel Orientation="Horizontal">
<WrapPanel>
<Label Height="28" Name="label1" Width="120">First Name</Label>
<Label Height="28" Name="label2" Width="120">John</Label>
<Label Height="28" Name="label3" Width="120">Last Name</Label>
<Label Height="28" Name="label4" Width="120">Smith</Label>
<!-- ...more labels!... -->
</WrapPanel>
<!-- ...other controls/panels... -->
</StackPanel>
</Window>
答案 0 :(得分:23)
您可以将WrapPanel
的{{1}}绑定到MaxWidth
的{{1}}。
答案 1 :(得分:7)
由于StackPanel
在进行水平布局时使用的算法,您无法进行的操作。它基本上会问每个子元素它想要的大小,无论它要求多大的空间,它都会给它。
您需要:
Width
。MaxWidth
或WrapPanel
WrapPanel
作为外部面板代替StackPanel
。