如何在堆叠面板中添加子项并在堆栈面板上滚动时保持我的grid.row在stackpanel下方可见?

问题描述 投票:0回答:1

我有一个带有Stackpanel和按钮的UWP网格。我以编程方式将子项添加到stackpanel。如果有太多的孩子,外部网格变得可滚动,并且滚动时堆栈面板和按钮会移动。我希望按钮停留在屏幕的底部(始终可见),并且堆栈面板可以滚动。

这是我的xaml代码。

<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="60"/>
    </Grid.RowDefinitions>
    <Grid Grid.Row="0">
        <StackPanel x:Name="panel" Orientation="Vertical"/>
    </Grid>
    <Button x:Name="ucBottomMenu" Grid.Row="1" Height="60"/>
</Grid>
uwp-xaml
1个回答
1
投票

如果您的上述代码是页面上的所有XAML代码,则按钮控件应始终可见。您只需要使用ScrollViewer控件来包装stackPanel,然后只有stackPanel中的子元素可以滚动。

XAML如下所示:

<Page
x:Class="AppScroll.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:AppScroll"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

<Grid>
    <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="60" />
        </Grid.RowDefinitions>
        <Grid Grid.Row="0">
            <ScrollViewer>
                <StackPanel x:Name="panel" Orientation="Vertical" />
            </ScrollViewer>
        </Grid>
        <Button x:Name="ucBottomMenu" Grid.Row="1" Height="60" />
    </Grid>
</Grid>

© www.soinside.com 2019 - 2024. All rights reserved.