Xamarin. Forms TwoPaneView 版面配置

TwoPaneView 控制項可在DualScreen 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>

根據預設,TwoPaneView 會嘗試一律轉譯這兩個窗格,這表示當應用程式在單一畫面上執行時,會在兩個窗格之間分割此視圖。 當版面配置只在一個畫面上轉譯時,可使用下列屬性來影響配置:

  • MinTallModeHeight – 表示控制項要進入高模式所需的最小高度。
  • MinWideModeWidth – 表示控制項要進入寬模式所需的最小寬度。
  • Pane1Length –以寬模式設定設定 pane1 的寬度,以高模式設定設定 pane1 的高度,而且在 SinglePane 模式中不會有任何作用。
  • Pane2Length –以寬模式設定 Pane2 的寬度,以高模式設定 Pane2 的高度,而且在 SinglePane 模式中不會有任何作用。

在 Surface Duo 上,應用程式可跨越兩個螢幕。 TwoPaneView 控制項具有額外屬性,其可決定兩個窗格相互呈現的方式 (在單螢幕或雙螢幕中皆相同):

  • TallModeConfiguration –在高模式中時,窗格可以是頂端/下、下/上或單一窗格。
  • WideModeConfiguration –處於寬模式時,窗格可以靠左/靠右、靠右/靠左或單一窗格。
  • PanePriority –如果在 [高] 或 [寬] 模式中選擇 [以 SinglePane 模式],是否要顯示設定 pane1 或 Pane2。

顯示模式有三種:

  • SinglePane – 目前只顯示一個窗格。
  • Wide – 水平配置這兩個窗格。 其中一個窗格置於左邊,另一個則置於右邊。 在表面上,兩個畫面處於直向模式。
  • Tall – 垂直配置這兩個窗格。 其中一個窗格置於上方,另一個則置於下方。 在表面上,兩個畫面處於橫向模式。

請參閱 Xamarin 檔中的詳細資訊。 UWP TwoPaneView 檔中的部分設計考慮也適用于 Xamarin 控制項。

疑難排解

如果您觀察到非預期的行為或 TwoPaneView 配置,請檢查 設定指令,包括 Init 方法和 ConfigurationChanges 屬性。