Windows 系统强调色更改后如何更新 WinJS UWP 应用程序

How to update a WinJS UWP app after the Windows system accent color changes

我有 2 个变量,accentColorbackgroundColor。当我将 Windows 设置从亮模式更改为暗模式时,backgroundColor 会按预期更新,但是当我选择新的 Windows 强调色时,accentColor 不会更改。

var uiSettings = new Windows.UI.ViewManagement.UISettings(),
   accentColor = uiSettings.getColorValue(Windows.UI.ViewManagement.UIColorType.accent),
   backgroundColor = uiSettings.getColorValue(Windows.UI.ViewManagement.UIColorType.background);

因此我无法更新 UI 来反映用户的选择。这是一个错误吗?有解决办法吗?

我正在检查 visibilitychanged 事件。

document.addEventListener("visibilitychange", onVisibilityChanged);

这发生在 Windows 10 Pro 1709 build 16299.309 但令人惊讶的是在 Windows 10 Mobile 上正常工作!

您可以检测到 UISettings 实例的 colorvalueschangedevent 处理程序中的强调色发生了变化。当您更改系统的主题主题颜色时,它会被触发。

var uiSettings = new Windows.UI.ViewManagement.UISettings();
uiSettings.addEventListener("colorvalueschanged", onColorChanged);

function onColorChanged() {

    var accentColor = uiSettings.getColorValue(Windows.UI.ViewManagement.UIColorType.accent);

}