You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET Maui中调用Windows/Android系统强调色?

获取系统强调色作为应用主题方案

Windows平台实现

你提到的Windows.UI.ViewManagement API是完全可行的,这是UWP/WinUI应用获取系统强调色的官方标准方式。

核心代码实现

using Windows.UI.ViewManagement;

// 在页面类或应用初始化逻辑中
var uiSettings = new UISettings();
var accentColor = uiSettings.GetColorValue(UIColorType.Accent);

注意事项

  • 该API仅适用于UWP、WinUI 3等Windows现代应用框架
  • 若要监听强调色变化(用户在系统设置中修改颜色时),可以订阅UISettings.ColorValuesChanged事件,实时更新应用主题
  • 获取到的accentColor是Windows.UI.Color类型,可直接用于设置控件的Foreground、Background等属性,或转换为XAML资源供全局使用

Android平台实现

Android中获取系统调色板对应的强调色,可通过以下方式:

核心代码实现

// 在Activity或Fragment中
val accentColor = ContextCompat.getColor(this, com.google.android.material.R.attr.colorPrimary)
// 或者获取系统主题中的强调色变体
val accentColorVariant = ContextCompat.getColor(this, com.google.android.material.R.attr.colorPrimaryVariant)

注意事项

  • 若使用Material Design 3,可通过MaterialTheme.colorScheme.primary直接获取系统设置的主色调
  • 同样可以监听系统主题变化,通过Configuration.UI_MODE_NIGHT_MASK结合注册BroadcastReceiver或使用AppCompatDelegate的回调来实时更新应用主题

跨平台统一方案(可选)

如果你的应用基于跨平台框架开发,可使用框架原生API统一获取系统强调色:

  • MAUI:通过AppInfo.RequestedTheme结合Microsoft.Maui.Graphics.Color的系统主题属性获取
  • Flutter:使用Theme.of(context).colorScheme.primary直接获取当前系统主题的主色调

内容的提问来源于stack exchange,提问作者Sepehr Hekmat Rad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 00:40:02