Как изменить цвет текста нескольких меток одновременно в формах Xamarin?

#c# #xamarin.forms

#c# #xamarin.forms

Вопрос:

У меня есть несколько Label s внутри a Grid , которые находятся в разных строках и столбцах сетки. Я хочу изменить весь цвет шрифта метки только на один цвет всякий раз, когда я выбираю другой цвет темы в своих настройках. На данный момент у меня есть следующий код на 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 символов. Есть ли способ сделать это в одной строке?

Ответ №1:

Ваш вопрос уже приводит к правильному предположению, вы не должны делать это для каждого элемента представления.

Если вы можете использовать предварительный просмотр 2.3, есть встроенная поддержка тем, ознакомьтесь с документами.

До версии 2.3 pre вы могли использовать ControlTemplate s, хороший пример можно найти здесь.

Редактировать: если вы не хотите создавать тему для всего приложения, вы можете привязаться к цвету в вашей модели представления, с которым вы знакомы, и, изменив этот цвет, цвета меток адаптируют его. Я думаю, может быть, это ближе к однострочному подходу.