Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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# “包裹”面板包含在其他控件中时不包裹_C#_Wpf_Xaml_Window Resize_Wrappanel - Fatal编程技术网

C# “包裹”面板包含在其他控件中时不包裹

C# “包裹”面板包含在其他控件中时不包裹,c#,wpf,xaml,window-resize,wrappanel,C#,Wpf,Xaml,Window Resize,Wrappanel,我正试图在WPF中实现一个扩展器,它的侧面有一些嵌套的控件。其中之一是一个包装面板,我想在用户更改窗口大小时包装它 如果我将WrapPanel的网格控件父对象取出并将其放在自己的应用程序中,但不是以这种格式,那么这是可行的。因为我没有使用这个网格的最小宽度,所以我很惊讶为什么它没有包装。有什么想法吗?谢谢 <Window x:Class="WpfApplication5.MainWindow" xmlns="http://schemas.microsoft.com/winfx/20

我正试图在WPF中实现一个扩展器,它的侧面有一些嵌套的控件。其中之一是一个包装面板,我想在用户更改窗口大小时包装它

如果我将WrapPanel的网格控件父对象取出并将其放在自己的应用程序中,但不是以这种格式,那么这是可行的。因为我没有使用这个网格的最小宽度,所以我很惊讶为什么它没有包装。有什么想法吗?谢谢

<Window x:Class="WpfApplication5.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" FontFamily="Calibri" FontSize="8">
<StackPanel Orientation="Vertical">
    <Expander Margin="3" Padding="3">
        <Expander.Header>
            <StackPanel Orientation="Horizontal" MinWidth="150" Width="Auto" MinHeight="25">
                <Label MinWidth="50">Label 1</Label>
                <CheckBox VerticalAlignment="Center"></CheckBox>
                <Border></Border>
                <Label>Label 2</Label>
            </StackPanel>
        </Expander.Header>
        <Expander.Content>
            <StackPanel Orientation="Horizontal" >
                <Label MinWidth="150">Add Image</Label>
                <Grid Name="Grid1"  ShowGridLines="True" Width="Auto">
                    <Grid.RowDefinitions>
                        <RowDefinition Name="Title1" MinHeight="25"></RowDefinition>
                        <RowDefinition Name="Number1" MinHeight="25"></RowDefinition>
                        <RowDefinition Name="PlaneA" MinHeight="25"></RowDefinition>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Name="Plane1" MinWidth="25" Width="Auto"></ColumnDefinition>
                        <ColumnDefinition Name="PlaneCheckBox" MinWidth="25" Width="Auto"></ColumnDefinition>
                        <ColumnDefinition Name="Border1" MinWidth="25" Width="Auto"></ColumnDefinition>
                        <ColumnDefinition Name="List1" Width="*"></ColumnDefinition>
                    </Grid.ColumnDefinitions>
                    <WrapPanel Grid.Row="2" Grid.Column="3" Orientation="Horizontal" VerticalAlignment="Stretch">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition MinWidth="25"></ColumnDefinition>
                                <ColumnDefinition MinWidth="25"></ColumnDefinition>
                            </Grid.ColumnDefinitions>
                            <CheckBox Grid.Column="0" VerticalAlignment="Center"></CheckBox>
                            <Label Grid.Column="1">No. 1</Label>
                        </Grid>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition MinWidth="25"></ColumnDefinition>
                                <ColumnDefinition MinWidth="25"></ColumnDefinition>
                            </Grid.ColumnDefinitions>
                            <CheckBox Grid.Column="0" VerticalAlignment="Center"></CheckBox>
                            <Label Grid.Column="1">No. 1</Label>
                        </Grid>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition MinWidth="25"></ColumnDefinition>
                                <ColumnDefinition MinWidth="25"></ColumnDefinition>
                            </Grid.ColumnDefinitions>
                            <CheckBox Grid.Column="0" VerticalAlignment="Center"></CheckBox>
                            <Label Grid.Column="1">No. 1</Label>
                        </Grid>
                    </WrapPanel>
                </Grid>
            </StackPanel>
        </Expander.Content>
    </Expander>
</StackPanel>

标签1
标签2
添加图像
第一号
第一号
第一号

StackPanel在方向上的大小是无限的。因此,当在StackPanel内部使用WrapPanel时,必须在该方向限制StackPanel的大小。另一方面,网格的大小是有限的,因此您可以看到内容包装。

尝试限制StackPanel的大小,无论如何,请尽量减少代码示例。。不需要这么多网格对象…缩小了大小。使用StackPanel玩了但没有成功…我应该以什么方式更改大小限制?你能用网格替换外部StackPanel吗?这可以工作,但为什么?当然,这应该是可能的,以同样的方式与StackPanel?