Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XamarinForms中标签的TextColor属性不适用于Android_C#_Android_Xaml_Xamarin.forms - Fatal编程技术网

C# XamarinForms中标签的TextColor属性不适用于Android

C# XamarinForms中标签的TextColor属性不适用于Android,c#,android,xaml,xamarin.forms,C#,Android,Xaml,Xamarin.forms,我一直在关注微软发布的关于如何利用TextColor属性的所有文档,似乎我一辈子都无法在Android上改变它。我用下面的代码将其设置为XAML级别,但没有效果。我也尝试过用下面的代码在C端设置它,但没有效果 case Device.Android: lblError.Text = "*Please enter a valid code"; lblError.FontAttributes = FontAttributes.Bold; lblError.TextColor = C

我一直在关注微软发布的关于如何利用TextColor属性的所有文档,似乎我一辈子都无法在Android上改变它。我用下面的代码将其设置为XAML级别,但没有效果。我也尝试过用下面的代码在C端设置它,但没有效果

case Device.Android:
   lblError.Text = "*Please enter a valid code";
   lblError.FontAttributes = FontAttributes.Bold;
   lblError.TextColor = Color.Red;
   break;

任何帮助都将不胜感激。文档似乎很简单,但显然我遗漏了一些东西。

尝试删除文件夹
bin
obj
。然后清理并重建项目。您的代码似乎没有问题。我使用以下代码,在安卓和iOS上都可以正常工作

 <StackLayout>
        <Label Text="Welcome to Xamarin.Forms!"
               TextColor="Red"
            VerticalOptions="CenterAndExpand" 
            HorizontalOptions="CenterAndExpand" />
 </StackLayout>
Android中的自定义标签渲染器。项目:

[assembly: ExportRenderer(typeof(MyLablel), typeof(MyLablelRenderer))]
namespace App18.Droid
{
  class MyLablelRenderer:LabelRenderer
   {
      public MyLablelRenderer(Context context) : base(context)
       {
       }
      protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
       {
         base.OnElementChanged(e);
         if (Control != null)
          {              
            Control.SetTextColor(Android.Graphics.Color.Red);
          }

       }

    }
}
[程序集:ExportRenderer(typeof(MyLabel)、typeof(MyLabelRenderer))]
名称空间App18.Droid
{
类MyLabelRenderer:LabelRenderer
{
公共MyLableRenderer(上下文):基(上下文)
{
}
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(控件!=null)
{              
Control.SetTextColor(Android.Graphics.Color.Red);
}
}
}
}
然后在page.xaml中使用:

<ContentPage.Content>
    <StackLayout>
        <local:MyLablel Text="Welcome to Xamarin.Forms!"
            VerticalOptions="CenterAndExpand" 
            HorizontalOptions="CenterAndExpand" />
    </StackLayout>
</ContentPage.Content>

在Android设备上,进入设置>系统>辅助功能,检查“高对比度文本”是否已关闭。然后,标签颜色应该像Windows上的模拟器一样工作


我也有同样的问题,只花了两个小时排除故障。我的视力很差,所以“高对比度文本”选项通常很有用,但当我制作了一些标签,并且文本颜色属性似乎没有像广告中所宣传的那样工作时,我发现自己很困惑。

发生类似情况时,请确保执行完全卸载/清理/重建。我以前有过it缓存UI,但没有意识到它没有应用更改。您使用的XF版本是什么?我也完成了完整的卸载/清理/重建。很抱歉,我也应该在描述中提到这一点。我使用的是XF的最新版本。出于某种原因,这似乎已经修复了它。非常感谢。实际上,有趣的是,它在设计器中修复了它,但在实际应用程序中却没有。我确实从我的测试手机上完全卸载了这个应用程序,并重新安装了它。有些安卓手机不支持彩色文本吗?事实上,我对几乎所有不是背景色的颜色都有这种感觉。@NathanGeranis,这真的很奇怪。我这边的一切都正常。如果它真的不正常,你可以使用customrender来更改它的颜色。请参阅我的更新。这可能只是我用来测试的手机的问题?当我使用android仿真器时,文本颜色会相应地显示出来,但当我部署到测试手机时,文本会显示为黑色或白色。
<ContentPage.Content>
    <StackLayout>
        <local:MyLablel Text="Welcome to Xamarin.Forms!"
            VerticalOptions="CenterAndExpand" 
            HorizontalOptions="CenterAndExpand" />
    </StackLayout>
</ContentPage.Content>