Xamarin.Forms にはプラットフォームやデバイスの種類に準じた処理ができるような Device クラスというのがあります。ラベルを例としてプラットフォームの判別をまとめています。
BackgroundColor, label.Text を変えています。
ファイル --> 新規作成 --> プロジェクト(P)... --> Cross-Platform --> Xamarin-Forms で作成
OnPlatform02
MainHome.cs 追加
MainHome.cs の書き換え
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace OnPlatform02
{
public partial class MainHome : ContentPage
{
public MainHome()
{
/*
if (Device.OS ==
TargetPlatform.iOS)
{
// いつもの iOS の Status bar
を避けるやつ。
stackLayout.Padding = new Thickness(0,
20, 0, 0);
}
*/
//ラベルを生成
var label = new Label
{
//FontSize = 40,
//ビューの中央に配置
HorizontalOptions =
LayoutOptions.Center,
VerticalOptions =
LayoutOptions.Center,
//Text = "Customizing Xamarin
Forms"
};
Content = label;//ラベルのみを配置する
/*
// iOS,Android,WinPhone Platform
if (Device.OS ==
TargetPlatform.iOS)
{
label.Text = "Hello from
iOS!";
}
if (Device.OS ==
TargetPlatform.Android)
{
label.Text = "Hello from
Android!";
}
if (Device.OS ==
TargetPlatform.WinPhone)
{
label.Text = "Hello from
WinPhone!";
}
*/
/*
// iOS,Android,WinPhone Platform
Device.OnPlatform(
iOS: () => { label.Text = "Hello
from iOS!"; },
Android: () => { label.Text =
"Hello from Droid!"; },
WinPhone: () => { label.Text =
"Hello from WinPhone!"; });
*/
// iOS,Android,WinPhone Platform
Device.OnPlatform(
iOS: () => {
BackgroundImage =
"back.png";
label.Text = "iOS Xamarin
Forms";
label.FontFamily =
"HelveticaNeue-Thin";
label.FontSize = 30;
},
Android: () => {
BackgroundColor =
Color.FromHex("#AA66CC");
label.Text = "Android Xamarin
Forms";
label.FontFamily =
"sans-serif-condensed";
//label.FontSize =
Device.GetNamedSize(NamedSize.Medium, label);
label.FontSize = 40;
},
WinPhone: () => {
BackgroundColor =
Color.Blue;
label.Text = "WinPhone Xamarin
Forms";
label.FontFamily =
"HelveticaNeue-Thin";
label.FontSize = 30;
});
}
}
}
App.cs の書き換え
App.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Xamarin.Forms;
namespace OnPlatform02
{
public class App : Application
{
public App()
{
// The root page of your
application
MainPage = new MainHome();
}
}
}
▫️参考ページ
Xamarin.Forms の Device クラスについて(特に Device.OnPlatform)
Xamarin.Forms Platform Customizing with Device.OnPlatform
コメントをお書きください