コメント
コメントの投稿
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。
using Xamarin.Forms;
namespace AppName.Controls
{
public class BasePicker : Picker
{
public BasePicker() : base()
{
}
TextAlignment _textAlignment = TextAlignment.Start; //初期値
//CustomRendererで取得できるように
public TextAlignment HorizontalTextAlignment
{
get
{
return _textAlignment;
}
set
{
_textAlignment = value;
}
}
}
}
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
using AppName.Controls;
[assembly: ExportRenderer(typeof(BasePicker), typeof(CustomPickerRenderer))]
namespace AppName.iOS.Renderer
{
public class CustomPickerRenderer : PickerRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
{
base.OnElementChanged(e);
if (Control != null)
{
TextAlignment align = ((BasePicker)Element).HorizontalTextAlignment;
switch (align)
{
case TextAlignment.Center:
Control.TextAlignment = UITextAlignment.Center;
break;
case TextAlignment.Start:
Control.TextAlignment = UITextAlignment.Left;
break;
case TextAlignment.End:
Control.TextAlignment = UITextAlignment.Right;
break;
}
}
}
}
}
using Android.Views;
using Xamarin.Forms.Platform.Android;
using Xamarin.Forms;
using AppName.Controls;
[assembly: ExportRenderer(typeof(BasePicker), typeof(CustomPickerRenderer))]
namespace AppName.Droid.Renderer
{
public class CustomPickerRenderer : PickerRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Xamarin.Forms.TextAlignment align = ((CFPicker)Element).HorizontalTextAlignment;
switch (align)
{
case Xamarin.Forms.TextAlignment.Center:
Control.Gravity = GravityFlags.CenterHorizontal;
break;
case Xamarin.Forms.TextAlignment.Start:
Control.Gravity = GravityFlags.Left;
break;
case Xamarin.Forms.TextAlignment.End:
Control.Gravity = GravityFlags.Right;
break;
}
}
}
}
}
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:base="clr-namespace:AppName.Controls;assembly=AppName" >
<base:BasePicker x:Name="pickerControlName" Title="TestPicker" SelectedIndexChanged="OnPickerChanged" HorizontalTextAlignment="End" HorizontalOptions="EndAndExpand"/>
<ContentPage>
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。