有没有办法阻止包装面板中的项目包装 "too soon"?

Is there a way to stop items in a wrap panel from wrapping "too soon"?

我正在尝试将按钮动态添加到滚动查看器内的包装面板中。我在添加按钮时没有遇到任何问题,但我在使用环绕面板调出按钮时遇到了问题 "too soon"。按钮将被包裹起来,但是当它们被发送时只显示一半的按钮。如果我进一步展开 window 按钮将按预期显示。

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

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>

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

RelativeSource={RelativeSource  AncestorType=Window}

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