当 scrollviewer 变得可见时,其他控件将移动到不同的位置

When scrollviewer becomes visible other controls move to different position

我有一个列表框,它的垂直滚动查看器设置为自动,所以当用户添加的项目多于屏幕上可见的项目时,滚动条就会出现。问题是当它出现时,它会移动其他东西,比如放在列表框旁边的添加按钮。有什么方法可以隐藏它(所以它有 space),然后在需要时让它可见?

我只是不想让周围的所有东西在任何时候滚动查看器变得可见或隐藏时跳跃。

问候 丹尼尔

如果您没有设置列表框的宽度或将其设置为自动(默认情况下),就会发生这种情况。尝试将其设置为如下代码所示的某个值,您应该不会遇到任何问题。

<StackPanel Orientation="Horizontal" OverridesDefaultStyle="True">
        <ListBox Height="150" Width="125" x:Name="NamesListBox"
           ScrollViewer.VerticalScrollBarVisibility="Auto"/>
        <Button Height="30" Width="100" 
           Click="ButtonBase_OnClick"  Content="Add"/>
</StackPanel>

private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
    NamesListBox.Items.Add(DateTime.Now);
}