c# - 选择器标题颜色不可更改

标签 c# xaml xamarin xamarin.forms

使用 xamarin 形式 (pcl)

创建选择器

<Picker x:Name="Branches" 
  TextColor="White" Title="Click to choose Branch"
  Grid.Row="3" Grid.Column="1"
  SelectedIndex="{Binding Branches}">
    <Picker.Items>
        <x:String>Id</x:String>
        <x:String>Name</x:String>
    </Picker.Items>
</Picker>

为什么是TextColorTitle黑色甚至很难我在 XAML 中明确将其设置为白色?

最佳答案

更新:Xamarin.Forms v3.6
Xamarin.Forms v3.6 introduces Picker.TitleColor .
现在可以设置选择器的 TitleColor无需解决方法即可直接使用。
XAMLTitleColor="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.SelectedIndex1 .
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);
        }
    }
}
enter image description here

关于c# - 选择器标题颜色不可更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41937931/

相关文章:

c# - 将测试驱动开发应用于紧密耦合的架构

c# - ASP.NET VNext 完整 CLR 中的 System.IO.Compression

c# - 无法将自定义类型隐式转换为 IDisposable 错误

wpf - 为什么人们在 XAML 样式元素中指定 BasedOn ="{x:Null}"?

c# - 如何通过单击事件隐藏或显示图像

c# - 启动/退出 Android.Provider.Settings Activity 时如何处理动画?

c# - 使用 MonoTouch 选择文件夹中的图像

c# - 检查 ContentDialog 是否打开

c# - Monotouch TouchUpInside 不起作用,TouchDown 起作用

c# - 如何在 Xamarin Android Activity 回调中使用等待