[Xamarin][CrossPlatform][Deviceクラス] Device.OnPlatformで様々なサイズを微調整する

Device.OnPlatformメソッドを使用するとターゲット(iOS, Android, Windows Phone)の微調整を行うことができます。

構文は以下の通りで引数は3つあります。

構文:
Device.OnPlatform(iOS用の値, Android用の値, Windows Phone用の値)

このメソッドは、実行時にターゲットを判断します。現在起動しているターゲットがiOSである場合には第1引数の値を、Androidである場合は第2引数の値を、Windows Phoneである場合は第3引数の値を返します。

以下はターゲット毎にパディングの値を変更する例です。Thicknessのそれぞれの引数は、順に左、上、右、下を表しており、この例では第2引数の「上」のパディング値をターゲット毎に変更できるようにしています。

layout.Padding = new Thickness (5, Device.OnPlatform(30,0,0), 5, 0);

また、以下のように記述することで、ターゲット毎に処理を実行させることもできます。

Device.OnPlatform(
    Android: () =>
    {
        lblIdiom.BackgroundColor = Color.Black;
    },
    iOS:() =>
    {
        lblIdiom.BackgroundColor = Color.Red;
    },
    WinPhone: () =>
    {
        lblIdiom.BackgroundColor = Color.Purple;
    }
);

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です