Xamarin表单 - 无法使用TextColor属性覆盖样式

时间:2016-06-03 20:28:10

标签: user-interface xamarin override xamarin.forms

我的标签样式定义如下:

var myLabelStyle = new Style(typeof(Label))
{
    Setters =
    {
        new Setter { Property = Label.TextColorProperty, Value = Color.Blue },
        new Setter { Property = Label.FontSizeProperty, Value = 30 }
    }
};

然后我有一个像这样定义的标签:

var myLabel = new Label
{
    Text = "My Label",
    Style = myLabelStyle,
    TextColor = Color.Red
};

该标签的颜色不应该是红色吗?嗯,它是蓝色的。

我应该能够根据直觉和Xamarin docs覆盖Style中定义的任何给定属性(参见截图后的单个句子)。

是什么给出了?

2 个答案:

答案 0 :(得分:2)

似乎是在版本2.0.0.6482(按预期工作)和版本2.2.0.31 之间介绍的 Xamarin Forms错误(损坏!无法按预期工作)。

答案 1 :(得分:0)

我认为你的代码没有任何问题:它在这个例子中起作用:

var myLabelStyle = new Style(typeof(Label))
{
    Setters =
    {
    new Setter { Property = Label.TextColorProperty, Value = Color.Blue },
    new Setter { Property = Label.FontSizeProperty, Value = 30 }
    }
};
var myLabelRed = new Label
{
    Text = "My Red Label",
    Style = myLabelStyle,
    TextColor = Color.Red
};
var myLabelBlue = new Label
{
    Text = "My Blue Label",
    Style = myLabelStyle,
};
var content = new ContentPage
{
    Content = new StackLayout
    {
        Children = {
            myLabelRed,
            myLabelBlue
        }
    }
};

的iOS:

enter image description here

机器人:

enter image description here