C# WPF中自动调整包裹面板的尺寸
我有一个项目气泡列表项目的大小取决于气泡的重量直径 我试图在包装纸上加上气泡。我想,包装面板应包装,并将作为自动大小后,它的完整项目 满负荷 元素添加到满容量 Xaml 也 如果面板的数量较多,请将其命名为P1和P2,其中包含气泡,则P1中的气泡重量250应与P2中的气泡重量250相同,即使P1和P2具有不同的气泡。重量与尺寸的比例应相同C# WPF中自动调整包裹面板的尺寸,c#,wpf,autoresize,wrappanel,C#,Wpf,Autoresize,Wrappanel,我有一个项目气泡列表项目的大小取决于气泡的重量直径 我试图在包装纸上加上气泡。我想,包装面板应包装,并将作为自动大小后,它的完整项目 满负荷 元素添加到满容量 Xaml 也 如果面板的数量较多,请将其命名为P1和P2,其中包含气泡,则P1中的气泡重量250应与P2中的气泡重量250相同,即使P1和P2具有不同的气泡。重量与尺寸的比例应相同 对于所有面板中的所有气泡您所说的自动大小到底是什么意思?如果你是说wrappanel应该扩展它的高度,我想这已经是wrappanel的固有行为了。限制包装
对于所有面板中的所有气泡您所说的自动大小到底是什么意思?如果你是说wrappanel应该扩展它的高度,我想这已经是wrappanel的固有行为了。限制包装物高度的是其容器的高度。尝试将wrappanel放在scrollviewer中,您会发现它会随着内容不断扩展。当wrappanel的高度超过可用空间时,滚动条就会出现。测试示例:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ScrollViewer>
<ItemsControl VerticalAlignment="Center">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Width="100" IsItemsHost="True" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Items>
<Ellipse Height="30" Width="30" Fill="Green" />
<Ellipse Height="50" Width="50" Fill="Green" />
<Ellipse Height="100" Width="100" Fill="Green" />
<Ellipse Height="100" Width="100" Fill="Green" />
</ItemsControl.Items>
</ItemsControl>
</ScrollViewer>
</Grid>
结果:
我认为,如果将包裹面板放在StackPanel中,那么应该会得到所需的结果。自动调整大小意味着。。。。面板将调整其内部所有项目的大小,以容纳新添加的项目。。。。面板中的所有项目都将始终可见滚动条不应出现,因为每个项目都应可见。。因此,您希望面板内的项目调整大小,而不是面板本身。我现在还不知道。我也看不出到目前为止你是怎么做到的?
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ScrollViewer>
<ItemsControl VerticalAlignment="Center">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Width="100" IsItemsHost="True" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Items>
<Ellipse Height="30" Width="30" Fill="Green" />
<Ellipse Height="50" Width="50" Fill="Green" />
<Ellipse Height="100" Width="100" Fill="Green" />
<Ellipse Height="100" Width="100" Fill="Green" />
</ItemsControl.Items>
</ItemsControl>
</ScrollViewer>
</Grid>