当边框和标题栏的强调色未打开时,注册表中的 windows 标题栏颜色 (Win 10)

where in registry is windows titlebar color when accent color is NOT switched on for borders and titlebar (Win 10)

windows 标题栏(and/or 顶部边框)的白色是硬编码的还是有注册表设置?

它与 HKEY_CURRENT_USER\Control Panel\Colors\ActiveBorder(或 ActiveTitle、WindowFrame 等)或 HKEY_CURRENT_USER\Control Panel\Desktop\Colors 或 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\DWM 中的任何内容都不匹配。 =12=]

我可以通过在 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\DWM 中将 ColorPrevalence 设置为 1 来将其设置为活动颜色...但是希望能够在未设置时检测颜色。

对应的注册表项是AccentColorInactive。完整路径是:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\DWM\AccentColorInactive

AccentColorInactive 键包含一个 32 位 DWORD 值,以 ABGR (alpha-blue-green-red) 格式指定颜色。 (请注意,此 ABGR 格式的字节顺序与其他键使用的 ARGB 格式不同,例如 ColorizationColor!)AccentColorInactive 指定用于在非活动 [=41] 上绘制标题栏的颜色=] 当 ColorPrevalence 键设置为 1(这会打开标题栏上的颜色显示)。您可以在注册表中更改它,您的更改将立即生效(无需注销并重新登录)—非常适合实验!

但是,默认情况下该密钥不存在。它需要由用户或一些自定义工具手动创建。

因此,如果该键不存在,您应该退回到假设非活动标题栏具有默认颜色,即白色。 (奇怪的是,默认的非活动标题栏颜色是仍然白色,即使启用了“深色”模式也是如此。这可能是也可能不是Windows中的错误。如果你的应用程序依赖于此,你应该注意它在以后更新到 Windows!)

不幸的是,API 没有关于此的文档。 GetSysColorGetThemeSysColorGetThemeColor、API和return的None是正确的值,而WinRT UIColorType enum只提供“重音”颜色,而不是 inactive 重音颜色。阅读注册表似乎是你唯一的选择,直到有人反汇编 OS 代码并找到一个未记录的 API 来检索此信息(类似于 DwmGetColorizationParameters 函数,由序数 #127 来自 DwmApi.dll,几年前在网上发现并记录在案)。