如何在Windows系统重音颜色更改后更新WinJS UWP应用程序

时间:2018-04-06 13:10:47

标签: uwp winjs

我有2个变量,accentColorbackgroundColor。当我将Windows设置从Light模式更改为Dark模式时,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);

因此我无法更新用户界面以反映用户的选择。这是一个错误吗?有工作吗?

我正在查看visibilitychanged事件。

document.addEventListener("visibilitychange", onVisibilityChanged);

这种情况发生在Windows 10 Pro 1709 build 16299.309上,但令人惊讶的是在Windows 10 Mobile上正常运行!

1 个答案:

答案 0 :(得分:0)

您可以检测UISettings实例的colorvalueschangedevent处理程序中更改的重音颜色。当你改变系统时#39;主题强调颜色,它将被解雇。

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

function onColorChanged() {

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

}