C# WPF中自动调整包裹面板的尺寸

C# WPF中自动调整包裹面板的尺寸,c#,wpf,autoresize,wrappanel,C#,Wpf,Autoresize,Wrappanel,我有一个项目气泡列表项目的大小取决于气泡的重量直径 我试图在包装纸上加上气泡。我想,包装面板应包装,并将作为自动大小后,它的完整项目 满负荷 元素添加到满容量 Xaml 也 如果面板的数量较多,请将其命名为P1和P2,其中包含气泡,则P1中的气泡重量250应与P2中的气泡重量250相同,即使P1和P2具有不同的气泡。重量与尺寸的比例应相同 对于所有面板中的所有气泡您所说的自动大小到底是什么意思?如果你是说wrappanel应该扩展它的高度,我想这已经是wrappanel的固有行为了。限制包装

我有一个项目气泡列表项目的大小取决于气泡的重量直径

我试图在包装纸上加上气泡。我想,包装面板应包装,并将作为自动大小后,它的完整项目

满负荷

元素添加到满容量

Xaml 也

如果面板的数量较多,请将其命名为P1和P2,其中包含气泡,则P1中的气泡重量250应与P2中的气泡重量250相同,即使P1和P2具有不同的气泡。重量与尺寸的比例应相同
对于所有面板中的所有气泡

您所说的自动大小到底是什么意思?如果你是说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>