Xamarin.Forms の CarouselPage を2ページ使って、左ページにメニュー、右ページにコンテンツを表示しようと考えてみました。
そうすると、CarouselPage の2ページ目を最初に開く必要があるのですが、意外と簡単にできたのでメモとして残しておきます。
まず、MainPage.xaml を CarouselPage に対応させます。
<?xml version="1.0" encoding="utf-8" ?> <CarouselPage x:Name="carousel" xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:Carousel" x:Class="Carousel.MainPage"> <!--1ページ目--> <ContentPage> <ContentPage.Padding> <OnPlatform x:TypeArguments="Thickness"> <On Platform="iOS" Value="0, 20, 0, 0"></On> </OnPlatform> </ContentPage.Padding> <StackLayout> <Label Text="Welcome to Xamarin.Forms!" HorizontalOptions="Center" VerticalOptions="CenterAndExpand" /> </StackLayout> </ContentPage> <!--2ページ目--> <ContentPage> <ContentPage.Padding> <OnPlatform x:TypeArguments="Thickness"> <On Platform="iOS" Value="0, 20, 0, 0"></On> </OnPlatform> </ContentPage.Padding> <StackLayout> <Label Text="Welcome to CarouselPage!!" HorizontalOptions="Center" VerticalOptions="CenterAndExpand" /> </StackLayout> </ContentPage> </CarouselPage>
そして、MainPage.xaml.cs を CarouselPage に対応させ、2ページ目を初期表示するようにします。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Xamarin.Forms; namespace Carousel { public partial class MainPage : CarouselPage { public MainPage() { InitializeComponent(); //2ページ目を表示 this.CurrentPage = this.Children[1]; } } }
これだけで、CarouselPage の2ページ目を最初に開くことができるようになります。