最近在研究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中的文字就置中了)
參考資料:
https://forums.xamarin.com/discussion/19800/how-can-i-adjust-the-text-alignment-in-date-time-picker
文章標籤
全站熱搜
