Как добавить дочерние элементы в панель стека и сохранить видимость grid.row под панелью стека при прокрутке панели стека? - PullRequest
1 голос
/ 04 апреля 2019

У меня есть UWP Grid с 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>

1 Ответ

1 голос
/ 05 апреля 2019

Если ваш код выше - это весь код 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>

...