StackLayout не подчиняется свойству VerticalOptions в Xamarin.Forms - PullRequest
1 голос
/ 24 февраля 2020

Я пытаюсь создать простой интерфейс стека. Вот XAML.

    <ContentView>
        <StackLayout
            BackgroundColor="Green"
            HeightRequest="500"
            VerticalOptions="End">
            <StackLayout
                BackgroundColor="LightSkyBlue"
                HeightRequest="100"
                VerticalOptions="End">
                <!--  // ADD CONTROLS HERE[!  -->
            </StackLayout>
        </StackLayout>
    </ContentView>

В идеале ожидается, что «синяя» раскладка стека должна выровняться внизу на зеленой, но она просто не двигается и остается на вершине.

Что я делаю не так? Пожалуйста, направьте меня в правильном направлении

Прикрепите изображение для большей ясности.

enter image description here

Ответы [ 3 ]

3 голосов
/ 25 февраля 2020

Вам просто нужно заменить свой код следующим кодом:

<StackLayout
        BackgroundColor="Green"
        HeightRequest="500"
        VerticalOptions="End">
        <StackLayout
            BackgroundColor="LightSkyBlue"
            HeightRequest="100"
            VerticalOptions="EndAndExpand">
            <!--  // ADD CONTROLS HERE[!  -->
        </StackLayout>
    </StackLayout>

Надеюсь, это поможет вам

Спасибо

2 голосов
/ 24 февраля 2020

По моему опыту, StackLayout никогда не будет подчиняться вертикальным или горизонтальным параметрам. Он будет использовать столько места, сколько ему нужно. Вы можете поместить прозрачный BoxView в StackLayout и установить его VerticalOptions на FillAndExpand. Это заставит StackLayout использовать все пространство.

Обычно я вместо этого использую Grid и <RowDefinition Height="*"/>, чтобы заставить его использовать все пространство.

1 голос
/ 24 февраля 2020

Вам нужно установить вертикальную опцию синего стека макета на EndAndExpand. Потому что дочерние макеты стека не заполняются автоматически. Вы должны заставить его, если хотите. Вы можете посмотреть этот ответ здесь для подробного объяснения.

...