WPF StackPanel - 如何将项目推离底部

WPF StackPanel - how to push items off bottom

我有一个 StackPanel 在网格中垂直跨越整个屏幕,并且面板的 VerticalAlignment 选项设置为 Bottom。当我在代码中将项目添加到面板时,它们的位置从底部开始,当我添加更多时向上移动。这是需要的。然而,不希望的是在屏幕垂直填充项目后,添加更多项目会将它们推离屏幕顶部。我的愿望是让更多的物品从底部掉下来;我不在乎它们是否可见;我只是不想让最上面的项目消失。

您可能知道哪些技巧可以帮助我解决这个问题?提前谢谢你。

My desire is to have additional items fall off the bottom

您需要将 StackPanel 包裹在另一个容器中,使 StackPanel 本身可以随心所欲地增长,从而使 StackPanel 看起来从底部,但实际上是从顶部扩展,因此当它超过可用时 space,多余部分将从底部而不是顶部移除。

Grid 控件将执行此操作。例如:

<Window x:Class="TestSO67169225StackPanelFromBottom.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
  <Window.Resources>
    <Style TargetType="TextBlock">
      <Setter Property="FontSize" Value="36"/>
    </Style>
  </Window.Resources>
  
  <Grid VerticalAlignment="Bottom">
    <StackPanel>
      <TextBlock Text="StackPanel Item 1"/>
      <TextBlock Text="StackPanel Item 2"/>
      <TextBlock Text="StackPanel Item 3"/>
      <TextBlock Text="StackPanel Item 4"/>
      <TextBlock Text="StackPanel Item 5"/>
      <TextBlock Text="StackPanel Item 6"/>
    </StackPanel>
  </Grid>
</Window>

看起来像这样:

但是当你添加更多项目时,看起来像这样: