如何禁用 UWP 应用程序的高对比度模式
Posted
技术标签:
【中文标题】如何禁用 UWP 应用程序的高对比度模式【英文标题】:How to disable high contrast mode for UWP application 【发布时间】:2021-05-27 01:58:47 【问题描述】:最近,我们的应用程序的一些用户开始抱怨它没有正确呈现。他们发送的视频显示所有颜色均已关闭,并且该应用程序中的视频已被隐藏。经过大量的排查,我们终于发现这些用户将他们的机器设置为高对比度显示模式,而我们的应用程序没有能力处理它。也就是说,编写一个全新的主题来处理高对比度模式是不可能的。这是一个太大的重构,无法在短期内完成。
我进行了一些研究,发现有一种方法至少可以检测何时应用高对比度模式。我们的应用是 javascript UWP,因此使用 WinRT 我们可以检查模式是否开启,如下所示:
const highContrastOn = Windows.UI.ViewManagement.AccessibilitySettings().highContrast;
我们还可以检查正在使用的主题并设置事件以对更改采取行动。
AccessibilitySettings 类的文档位于此处:
https://docs.microsoft.com/en-us/uwp/api/windows.ui.viewmanagement.accessibilitysettings?view=winrt-19041
但是,我无法弄清楚我们是否可以为我们的应用禁用这种渲染。我们从未想过必须为它建立支持,如果我们决定这样做,这将是一项重大任务。有没有什么方法可以使用 WinRT 或者一些浏览器的方法来通知系统我们不支持高对比度?
【问题讨论】:
【参考方案1】:我们找到了一个解决方案,只需要少量的 CSS。
body
-ms-high-contrast-adjust: none;
【讨论】:
以上是关于如何禁用 UWP 应用程序的高对比度模式的主要内容,如果未能解决你的问题,请参考以下文章
UWP - Xbox One - JavaScript - 禁用 gamepadB 默认后退导航行为