Макет .NET MAUI TwoPaneView
Элемент управления TwoPaneLayout предоставляет контейнер адаптивного макета с двумя дочерними элементами: Pane1
и Pane2
. На двухэкранных и складных устройствах элемент управления будет располагать панели по обе стороны от петли или сгиба. На всех других типах устройств поведение макета настраивается и может отображать одну или обе панели в соответствии со свойствами, заданными в элементе управления .
Начало работы
Инструкции по добавлению элемента управления TwoPaneView в проект см. в документации по .NET MAUI, добавив Microsoft.Maui.Controls.Foldable NuGet.
Следующий код представляет собой простой пример XAML TwoPaneView, который показывает:
foldable
пространство имен, требуемое в корневом элементе- Свойства, заданные в элементе TwoPaneView (можно также использовать привязку или задать программно)
Pane1
иPane2
контейнеры, в которые добавляются макеты
<ContentPage xmlns:foldable="clr-namespace:Microsoft.Maui.Controls.Foldable;assembly=Microsoft.Maui.Controls.Foldable">
<foldable:TwoPaneView
TallModeConfiguration="SinglePane"
WideModeConfiguration="LeftRight"
PanePriority="Pane1">
<foldable:TwoPaneView.Pane1>
<StackLayout>
<Label Text="Pane1 Content" />
</StackLayout>
</foldable:TwoPaneView.Pane1>
<foldable:TwoPaneView.Pane2>
<StackLayout>
<Label Text="Pane2 Content" />
</StackLayout>
</foldable:TwoPaneView.Pane2>
</foldable:TwoPaneView>
</ContentPage>
По умолчанию TwoPaneView будет пытаться всегда отображать обе панели. Это означает, что при запуске приложения на одном экране представление будет разделено между двумя панелями. Следующие свойства можно использовать, чтобы повлиять на макет, если он отображается только на одном экране:
- MinTallModeHeight — указывает минимальную высоту элемента управления для входа в высокий режим.
- MinWideModeWidth — указывает минимальную ширину элемента управления для входа в расширенный режим.
- Pane1Length — задает ширину в режиме "Широкий
Pane1
", высотуPane1
в режиме "Высокий" и не влияет на режим SinglePane. - Pane2Length — задает ширину
Pane2
в широком режиме, высотуPane2
в режиме tall и не влияет на режим SinglePane.
На Surface Duo (и других складных устройствах) приложения можно распределять по петлям или сгибам. Элемент управления TwoPaneView имеет дополнительные свойства, которые определяют расположение двух панелей по отношению друг к другу (при размещении как на одном, так и на двух экранах):
- TallModeConfiguration — в режиме высокой высоты можно отображать области Сверху, Внизу, Снизу или Сверху.
- WideModeConfiguration — в широком режиме панели могут быть левой, правой, левой или левой или одной.
- PanePriority — отображение
Pane1
илиPane2
выбор в режиме SinglePane для высокого или широкого режима.
Существует три режима отображения:
- SinglePane — в данный момент отображается только одна панель.
- Wide — две панели располагаются горизонтально. Одна панель находится слева, а другая — справа. На Surface Duo два экрана находятся в книжном режиме.
- Tall — две панели располагаются вертикально. Одна панель находится вверху, а другая — внизу. На Surface Duo два экрана находятся в альбомном режиме.
Образец
Скачайте и запустите пример тестовой площадки TwoPaneView из GitHub. На этом снимке экрана показано, как в примере представлены различные свойства элемента управления TwoPaneView для экспериментов:
Устранение неполадок
Если вы наблюдаете непредвиденное поведение или макет из TwoPaneView
, ознакомьтесь с инструкциями по настройкеUseFoldable()
, включая метод построителя и ConfigurationChanges
атрибут .