SuperAPI AI 工具集

maui-theming

前端与建站

查看项目

更新于 10-15 20:34

技能介绍

用途:为 .NET MAUI 应用实现主题化,覆盖浅色/深色模式、自定义品牌主题与系统主题响应。

主要能力:提供三种方案对比。AppThemeBinding 适合跟随操作系统的自动浅色/深色切换,代码最少,但仅支持两种主题。ResourceDictionary 替换适合自定义品牌主题、两套以上主题或用户自选偏好,代价是配置更多,且必须全部使用 DynamicResource。两者结合可同时实现系统自动响应与自定义配色,最灵活也最复杂。

必要用法与关键注意:在 Android 上,MainActivity 的 ConfigurationChanges 必须包含 ConfigChanges.UiMode,否则主题变更事件不会触发,活动会整体重启,导致导航状态丢失,用户可能误以为崩溃。MAUI 支持 CSS 样式,但基于 CSS 的主题无法在运行时切换,运行时切换应使用 ResourceDictionary。使用 ResourceDictionary 切换主题时必须用 DynamicResource,例如 TextColor="{DynamicResource PrimaryTextColor}";StaticResource 在首次加载后即被冻结,不会随主题切换更新。

快速参考:系统浅色/深色用 AppThemeBinding 标记扩展;C# 中设置主题颜色用 SetAppThemeColor()、SetAppTheme<T>();读取系统主题用 Application.Current.RequestedTheme;强制主题用 Application.Current.UserAppTheme = AppTheme.Dark;主题变化监听 RequestedThemeChanged 事件;自定义切换在 MergedDictionaries 中替换 ResourceDictionary;运行时绑定使用 DynamicResource 而非 StaticResource。

适用场景:需要在 MAUI 应用中实现系统深浅色跟随或自定义多主题切换的开发者。

限制:除上述方案限制外,其余细节暂未提供。