Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Stackpanel中的水平方向,Stackpanel宽度末端的新行_C#_Wpf_Xaml_Stackpanel - Fatal编程技术网

C# Stackpanel中的水平方向,Stackpanel宽度末端的新行

C# Stackpanel中的水平方向,Stackpanel宽度末端的新行,c#,wpf,xaml,stackpanel,C#,Wpf,Xaml,Stackpanel,假设我们有一个水平方向的Stackpanel,宽度为100px 在它里面,我画了十一幅10像素宽的正方形画布 这意味着最后一个正方形将在视野之外,因为它将使stackpanel宽度延长10px。所以我想把这个正方形换成一条新的线 是否有可以执行此操作的控件? 最困难的部分是Stackpanel是动态的,因此如果我调整WPF窗口的大小,Stackpanel将是50px,这将导致2条完整的正方形线和第三条带有单个正方形的线 我希望这是有道理的。 我该怎么做 谢谢,Jonatan在这种情况下,包裹面板

假设我们有一个水平方向的Stackpanel,宽度为100px

在它里面,我画了十一幅10像素宽的正方形画布

这意味着最后一个正方形将在视野之外,因为它将使stackpanel宽度延长10px。所以我想把这个正方形换成一条新的线

是否有可以执行此操作的控件? 最困难的部分是Stackpanel是动态的,因此如果我调整WPF窗口的大小,Stackpanel将是50px,这将导致2条完整的正方形线和第三条带有单个正方形的线

我希望这是有道理的。 我该怎么做


谢谢,Jonatan

在这种情况下,包裹面板是您所需要的

    <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>

我认为您应该使用
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>


先生,你是救命恩人。谢谢如果他的stackpanel出现在许多页面中,这可能是一个很好的解决方案。但就像我说的,他应该用包装纸