#uno-platform
Вопрос:
Хотя по большей части приложения платформы Uno способны внутренне обрабатывать изменения темы, у меня в приложении есть собственный код, который должен реагировать на изменение темы. Например, когда пользователь меняет тему со светлой на темную здесь:
Настройки дисплея Android для темы
В моем коде я могу изначально получить значение темы следующим образом:
var color = (Color)App.Current.Resources["SystemBaseHighColor"]
Теперь, когда пользователь меняет тему и возвращается в приложение, я хочу обнаружить это и программно обновить какой-либо компонент. Есть ли событие, к которому я могу подключиться для этого?
Ответ №1:
Вы можете отслеживать изменения темы на всех платформах, используя ThemeListener
вспомогательный класс из набора инструментов сообщества Windows. Он поддерживается последними версиями платформы Uno.
Просто создайте новый экземпляр ThemeListener
и подпишитесь на ThemeListener.ThemeChanged
мероприятие.