我已经编写了一个WPF桌面应用程序,我希望使用Desktop Bridge将其放入Windows应用商店。该应用程序能够在明暗模式下呈现自己,并使用强调色。但是,要成为Windows 10的好公民,我希望尽可能从操作系统获取该信息。
我目前的理解是,我可以从这里获得强调色:
var accentBrush = SystemParameters.WindowGlassBrush;
如何判断Windows 10是处于浅色还是黑暗主题?另外,您建议使用哪种方法来通知用户对亮/暗或强调色的偏好的变化?
答案 0 :(得分:4)
只要Windows 10周年更新或更高版本中的此亮/暗模式设置发生更改,就会更新注册表值。关键是:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize
值的名称是:
AppsUseLightTheme
如果是1,那么主题是Light。如果是0,则主题为黑暗。如果我找不到密钥或值,我会假设Light(就像之前版本的Windows一样)。
就我而言,林德西值得赞扬。如果没有这个评论,我就不会进行调查。
答案 1 :(得分:1)
一些简单的代码为您提供普通WPF应用(而非UWP)中的轻量级模式。 从未在高对比度模式下进行过测试。 如果该值不存在或出了点问题,则采用光模式。
bool is_light_mode = true;
try
{
var v = Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize", "AppsUseLightTheme", "1");
if (v != null && v.ToString() == "0")
is_light_mode = false;
}
catch { }
答案 2 :(得分:0)