C# “包裹”面板包含在其他控件中时不包裹
我正试图在WPF中实现一个扩展器,它的侧面有一些嵌套的控件。其中之一是一个包装面板,我想在用户更改窗口大小时包装它 如果我将WrapPanel的网格控件父对象取出并将其放在自己的应用程序中,但不是以这种格式,那么这是可行的。因为我没有使用这个网格的最小宽度,所以我很惊讶为什么它没有包装。有什么想法吗?谢谢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
<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?