更新:Xamarin.Forms v3.6
Xamarin.Forms v3.6 introduces Picker.TitleColor.
现在可以直接设置 Picker 的 TitleColor 而无需解决方法。
XAML
TitleColor="Red"
<Picker x:Name="Branches"
Title="Click to choose Branch"
TitleColor="Red"
TextColor="White"
Grid.Row="3"
Grid.Column="1"
SelectedIndex="{Binding Branches}">
<Picker.Items>
<x:String>Id</x:String>
<x:String>Name</x:String>
</Picker.Items>
</Picker>
代码
myPicker.TitleColor = Color.Red
var myPicker = new Picker
{
TitleColor = Color.Red
};
说明
Xamarin.Forms 不允许您设置 Picker.Title 的颜色。
解决方法
将标题文本添加为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);
}
}
}