有没有一种方法可以阻止包装面板中的项目“太早包装”?

时间:2019-05-31 22:58:45

标签: c# wpf scrollviewer wrappanel

我正在尝试将按钮动态添加到scrollviewer内部的包装面板中。添加按钮没有问题,但是包装面板出现问题,“太早”将按钮调高了。按钮将结束,但在发送按钮时仅显示按钮的一半。如果我进一步展开窗口,该按钮将按预期显示。

我会内嵌正在发生的事情的图像,但是我没有足够的声誉。而是直接指向图片,显示了我的问题。

https://i.imgur.com/NasypbG.png

有没有办法告诉环绕面板在将整个按钮包裹起来之前等待整个按钮能够适应?

我已经为滚动查看器和包装面板(以及包装面板内部的临时按钮)提供了XAML代码。

我尝试使用Visual Studio中与包装面板有关的选项,但是我很茫然。我知道这可能很容易解决。

<ScrollViewer x:Name="gameSroller" Margin="106,10,10,10">
            <WrapPanel x:Name="gameWrapPanel" Height="900" Width="{Binding Path=ActualWidth,
                   RelativeSource={RelativeSource  AncestorType=Window}}" HorizontalAlignment="Left" RenderTransformOrigin="0.5,0.5" ItemWidth="360">
                <Button x:Name="button" Content="A Game" Width="350" Height="160" Padding="10,10,10,10" Margin="10">
                    <Button.Background>
                        <ImageBrush ImageSource="Resources/header.jpg"/>
                    </Button.Background>
                </Button>
            </WrapPanel>
        </ScrollViewer>

1 个答案:

答案 0 :(得分:-1)

我发现我在这里做错了。 WrapPanel的这部分选项不正确:

RelativeSource={RelativeSource  AncestorType=Window}

现在,当我增加窗口大小时,将其从XAML删除可以正确显示全尺寸的按钮。抱歉,您的问题部分太混乱了!