我在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,此代码可能会更长。有没有办法在一行中做到这一点?
答案 0 :(得分:1)
您的问题已经导致了正确的假设,您不应该对每个视图元素执行此操作。
如果您能够使用2.3预览,则内置支持主题check out the docs。
在2.3之前,你可以使用ControlTemplate
,找到一个很好的样本here。
编辑:如果您的目标不是整个应用程序的主题,您可以绑定到您熟悉的视图模型中的颜色,并通过更改该颜色,标签颜色将适应它。我想也许这更接近于单线方法。