我们假设我们有一个水平方向的Stackpanel,宽度为100px。
在里面我制作了11个宽度为10像素的方形画布。
这意味着最后一个方块将位于视图之外,因为它将扩展stackpanel宽度10px。所以我希望这个方块处于一个新的界限。
是否有可以执行此操作的控件? 困难的部分是Stackpanel是动态的,所以如果我调整WPF窗口的大小,Stackpanel将是50px,这将产生2个完整的方形线和第三个带有单个方形的线。
我希望这样做。 我怎么能这样做?
谢谢,Jonatan
答案 0 :(得分:10)
在这种情况下你需要Wrap面板
<WrapPanel Width="100" Orientation="Horizontal">
<Button Width="10" Height="20"/>
<Button Width="10" Height="20"/>
<Button Width="10" Height="20"/>
<Button Width="10" Height="20"/>
<Button Width="10" Height="20"/>
<Button Width="10" Height="20"/>
<Button Width="10" Height="20"/>
<Button Width="10" Height="20"/>
<Button Width="10" Height="20"/>
<Button Width="10" Height="20"/>
<Button Width="10" Height="20"/>
</WrapPanel>
答案 1 :(得分:4)
我认为你应该使用WrapPanel
而不是StackPanel
或者应用这种风格:
<StackPanel>
<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type StackPanel}">
<WrapPanel/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</StackPanel.Style>
</StackPanel>