Мне нужно настроить цвет текста палитры (цвет Title
), что невозможно в реализации Xamarin.Forms, поэтому я создал простой рендер, который сделал то, что мне было нужно:
using Android.Content;
using MyProj.Droid.Renderers;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
[assembly: ExportRenderer(typeof(Picker), typeof(CustomPickerRenderer))]
namespace MyProj.Droid.Renderers
{
public class CustomPickerRenderer : PickerRenderer
{
public CustomPickerRenderer(Context context) : base(context) { }
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.SetHintTextColor(((Color)Application.Current.Resources["TextColor"]).ToAndroid());
}
}
}
}
но стиль элемента управления значительно изменился, поэтому вместо списка, который реагирует на жест касания любого элемента, он стал прокручиваемым списком, который реагирует только на кнопки OK / Отмена!
Изображения:
ожидаемый стиль (до использования настраиваемого средства визуализации):
неожиданный стиль (после использования настраиваемого средства визуализации):