Maui XAML: элементы располагаются вверху и внизу вертикальной компоновки стека

Я работаю с xamarin уже много лет, и я знаю, что ЭТОТ код должен работать:

<ContentPage xmlns = "http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x = "http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class = "Skillbased.Pages.LogIn.CreateAccount.Page_Tutorial"
             Title = "Page_Tutorial">
    <ScrollView>
        <StackLayout>
            <Grid Margin = "0,30,0,0">        
                <Image Source = "img_headerbar"/>
                 <Label VerticalOptions = "Center"
                       FontFamily = "BebasNeue"
                       FontSize = "30"
                       HorizontalOptions = "Center"
                       Text = "WARUM SKILLBASED?"/>
            </Grid>
            <Image VerticalOptions = "Start" Source = "img_bike"/>
        </StackLayout>
    </ScrollView>
</ContentPage>

Но результат таков:

И нет, на картинке внизу нет большого белого пространства сверху.

Я даже пробовал это с сеткой, но все равно она расположена внизу. Что здесь происходит?

Обновлено:

О, и если бы я попытался развернуть на Android:

.. все работает, но шрифт здесь не загружается прямо на Android ... в любом случае, похоже, проблема в том, почему maui

Да, я сделал сетку на внешнем большинстве, я также сделал вертикальный стек. ни один из них не работает, и эта проблема только на ios (как вы можете видеть в моем редактировании). Эта проблема также не возникает с другими изображениями, которые не занимают весь экран.

inno 09.12.2022 14:52

Извините, я удалил свой комментарий после вашего редактирования, потому что он больше не применим.

ewerspej 09.12.2022 14:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
289
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Я считаю, что вам нужно иметь Grid полностью снаружи и поместить ScrollView внутри него. Затем используйте VerticalStackLayout и поместите его в начало (параметры «Развернуть» из Xamarin.Forms больше не существуют в .NET MAUI).

Это работает для вас?

<Grid>
  <ScrollView>
    <VerticalStackLayout
      Spacing = "0"
      Margin = "0"
      VerticalOptions = "Start">

      <Grid Margin = "0,30,0,0"
            VerticalOptions = "Start">
        <Image Source = "img_headerbar"/>
        <Label VerticalOptions = "Center"
               FontFamily = "BebasNeue"
               FontSize = "30"
               HorizontalOptions = "Center"
               Text = "WARUM SKILLBASED?"/>
      </Grid>
      <Image VerticalOptions = "Start" Source = "img_bike"/>

    </VerticalStackLayout>
  </ScrollView>
</Grid>

спасибо, но результат на 100% идентичен. картинка на ios рендерится внизу. если я использую другое изображение, которое не полностью заполнено, это работает, но это не вариант

inno 09.12.2022 15:20

Вы уже искали эту проблему в репозитории MAUI на GitHub? github.com/dotnet/maui/issues

ewerspej 09.12.2022 15:25

да, я прошел через это, это еще не было выставлено. в любом случае, я решил создать несколько тикетов, так как есть много проблем (неправильная высота строки на метках, не загружается пользовательский шрифт, эта проблема здесь...)

inno 09.12.2022 16:23

Попробуйте установить свойство VerticalOrientation в StartAndExpand. Изображение перемещается или если вы установите его в центр?

Я бы также установил красный фон обоих изображений или что-то в этом роде. При этом вы можете увидеть, может ли iOS расширить их.

Моей последней идеей было бы установить Grid.RowDefinition.

Я даю вам несколько предложений:

  1. Установите изображение WidthRequest или используйте свойство Aspect изображения.

  2. Используйте сетку в качестве внешнего элемента управления. Установите RowHeight для строки.

  3. Попробуйте использовать AbsoluteLayout. Чтобы расположить и изменить размер дочерних элементов, вы можете использовать AbsoluteLayout.LayoutBounds. Для получения дополнительной информации вы можете обратиться к AbsoluteLayout в .NET Maui

Ответ принят как подходящий

Я решил это, добавив ширину к элементу.

<Image Source = "img_manwithbike.png" HeightRequest = "260"/>

Затем использование этого внутри вертикального стека сделало свое дело. Не сексуально, но пока этого достаточно.

Другие вопросы по теме