C# XamarinForms中标签的TextColor属性不适用于Android
我一直在关注微软发布的关于如何利用TextColor属性的所有文档,似乎我一辈子都无法在Android上改变它。我用下面的代码将其设置为XAML级别,但没有效果。我也尝试过用下面的代码在C端设置它,但没有效果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
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>