最近在研究Xamarin.Forms,發現如果要將Picker Control的文字置中或置右的話...,需要使用CustomRender再搭配條件式編譯的方式(假設要放在Share library裡)。

#if __IOS__

	using UIKit;
	using Xamarin.Forms.Platform.iOS;

#elif __ANDROID__

	using Xamarin.Forms.Platform.Android;
	using Android.Views;

#endif

[assembly: ExportRenderer(typeof(Picker), typeof(CustomPickerRenderer))]
namespace MilitaryCountdown
{
	public class CustomPickerRenderer : PickerRenderer
	{
		protected override void OnElementChanged(ElementChangedEventArgs e)
		{
			base.OnElementChanged(e);

			if (Control != null)
			{
#if __IOS__
				Control.TextAlignment = UITextAlignment.Center;
#elif __ANDROID__
				Control.Gravity = GravityFlags.CenterHorizontal;
#endif
			}
		}

	}
}

 

 

未使用CustomRender的結果:

(Picker中的文字都是置左)

 

使用CustomRender後的結果圖:

(Picker中的文字就置中了undefined)

 

參考資料:

https://forums.xamarin.com/discussion/19800/how-can-i-adjust-the-text-alignment-in-date-time-picker

arrow
arrow
    全站熱搜

    小賢 發表在 痞客邦 留言(0) 人氣()