如何在Xamarin Forms中同时更改多个标签的文本颜色?

时间:2016-10-18 04:07:11

标签: c# xamarin.forms

我在Label中有多个Grid s,它们位于不同的网格行和列中。每当我在设置中选择不同的主题颜色时,我想将所有标签的字体颜色更改为一种颜色。目前我在C#中有以下代码:

correctLabel.TextColor = Color.Black;
textLabel.TextColor = Color.Black;
emptyLabel.TextColor = Color.Black;
detail1.TextColor = Color.Black;
detail2.TextColor = Color.Black;
detail3.TextColor = Color.Black;

如您所见,如果我决定添加更多Label s,此代码可能会更长。有没有办法在一行中做到这一点?

1 个答案:

答案 0 :(得分:1)

您的问题已经导致了正确的假设,您不应该对每个视图元素执行此操作。

如果您能够使用2.3预览,则内置支持主题check out the docs

在2.3之前,你可以使用ControlTemplate,找到一个很好的样本here

编辑:如果您的目标不是整个应用程序的主题,您可以绑定到您熟悉的视图模型中的颜色,并通过更改该颜色,标签颜色将适应它。我想也许这更接近于单线方法。