说明
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);
}
}
}