Макет Твопаневиев Xamarin. Forms

элемент управления твопаневиев доступен в предварительной версии Xamarin. forms. дуалскрин NuGet . В следующем коде показан простой пример XAML:

<ContentPage xmlns:dualScreen="clr-namespace:Xamarin.Forms.DualScreen;assembly=Xamarin.Forms.DualScreen">
    <dualScreen:TwoPaneView>
        <dualScreen:TwoPaneView.Pane1>
            <StackLayout>
                <Label Text="Pane1 Content" />
            </StackLayout>
        </dualScreen:TwoPaneView.Pane1>
        <dualScreen:TwoPaneView.Pane2>
            <StackLayout>
                <Label Text="Pane2 Content" />
            </StackLayout>
        </dualScreen:TwoPaneView.Pane2>
    </dualScreen:TwoPaneView>
</ContentPage>

По умолчанию Твопаневиев попытается всегда отображать обе панели, что означает, что если приложение выполняется на одном экране, представление будет разбито между двумя панелями. Следующие свойства можно использовать для изменения макета, когда он будет отображен только на одном экране:

  • MinTallModeHeight — указывает минимальную высоту элемента управления для перехода в вертикальный режим.
  • MinWideModeWidth — указывает минимальную ширину элемента управления для перехода в горизонтальный режим.
  • Pane1Length — устанавливает ширину Pane1 в расширенном режиме, высоту Pane1 в режиме высокого уровня и не влияет на режим синглепане.
  • Pane2Length — устанавливает ширину Pane2 в расширенном режиме, высоту Pane2 в режиме высокого уровня и не влияет на режим синглепане.

На устройствах Surface Duo приложения могут располагаться на двух экранах. Элемент управления TwoPaneView имеет дополнительные свойства, которые определяют расположение двух панелей по отношению друг к другу (при размещении как на одном, так и на двух экранах):

  • Таллмодеконфигуратион — в режиме высокой высоты панели могут быть сверху вниз, снизу или сверху, либо только одна панель.
  • Видемодеконфигуратион — в широком режиме панели могут быть слева или справа, справа или слева, или только на одной панели.
  • Панеприорити — указывает, следует ли показывать Pane1 или Pane2, если в режиме синглепане выбран режим "высокий" или "широкий".

Существует три режима отображения:

  • SinglePane — в данный момент отображается только одна панель.
  • Wide — две панели располагаются горизонтально. Одна панель находится слева, а другая — справа. На Surface Duo два экрана находятся в книжной ориентации.
  • Tall — две панели располагаются вертикально. Одна панель находится вверху, а другая — внизу. На Surface Duo два экрана находятся в альбомном режиме.

Дополнительные сведения см. в документации по Xamarin. Некоторые из рекомендаций по проектированию в документации по Твопаневиев UWP также применяются и к элементу управления Xamarin.

Устранение неполадок

Если вы видите непредвиденное поведение или макет из TwoPaneView , проверьте TwoPaneView, включая Init метод и ConfigurationChanges атрибут.