Uno Platform 应用对 Android 主题更改作出反应
Uno Platform app react to Android theme change
虽然大部分 Uno Platform 应用能够在内部处理主题更改,
我的应用程序中有一些自定义代码需要对主题更改做出反应。例如,当用户在此处从浅色主题更改为深色主题时:
Android display settings for theme
在我的代码中,我最初可以像这样获取主题值:
var color = (Color)App.Current.Resources["SystemBaseHighColor"]
现在,当用户更改应用程序的主题和 returns 时,我想检测到这一点并以编程方式更新某些组件。有没有我可以为此挂钩的事件?
您可以使用 ThemeListener
helper class from the Windows Community Toolkit 在所有平台上监听主题变化。最近的 Uno Platform 版本支持它。
只需创建 ThemeListener
的新实例并订阅 ThemeListener.ThemeChanged
事件。
虽然大部分 Uno Platform 应用能够在内部处理主题更改, 我的应用程序中有一些自定义代码需要对主题更改做出反应。例如,当用户在此处从浅色主题更改为深色主题时:
Android display settings for theme
在我的代码中,我最初可以像这样获取主题值:
var color = (Color)App.Current.Resources["SystemBaseHighColor"]
现在,当用户更改应用程序的主题和 returns 时,我想检测到这一点并以编程方式更新某些组件。有没有我可以为此挂钩的事件?
您可以使用 ThemeListener
helper class from the Windows Community Toolkit 在所有平台上监听主题变化。最近的 Uno Platform 版本支持它。
只需创建 ThemeListener
的新实例并订阅 ThemeListener.ThemeChanged
事件。