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 事件。