Объяснение
Xamarin.Forms не позволяет установить цвет Picker.Title
.
Это не просто проблема Xamarin.Forms; это дизайнерское решение, сделанное iOS и Android. Заголовок сборщика не является элементом в списке и не может быть выбран пользователем. iOS и Android продиктовали, что заголовок сборщика должен всегда быть серым, чтобы указать пользователю, что ни один элемент в списке не выбран.
Работа Вокруг
Добавить текст заголовка в качестве первого пункта в Picker.Items
.
Затем установите начальный Picker.SelectedIndex
на 0. Это покажет первый элемент в Picker.Items
(или наш заголовок) на экране по умолчанию при загрузке страницы.
Затем добавьте обработчик события в Picker.SelectedIndex
, чтобы пользователь не мог выбрать заголовок. Он проверит, выбрал ли пользователь первый элемент в Picker.Items
(так называемый наш заголовок), и, если true
автоматически изменит Picker.SelectedIndex
на 1
.
using System;
using Xamarin.Forms;
namespace PickerTitleColor
{
public class App : Application
{
public App()
{
var picker = new Picker();
picker.Items.Add("Select an item");
picker.Items.Add("Item1");
picker.Items.Add("Item2");
picker.Items.Add("Item3");
picker.TextColor = Color.Red;
picker.SelectedIndex = 0;
picker.SelectedIndexChanged += (sender, e) =>
{
if (picker.SelectedIndex == 0)
picker.SelectedIndex = 1;
};
var content = new ContentPage
{
Title = "Custom Picker Title Color",
Content = picker
};
MainPage = new NavigationPage(content);
}
}
}