当我在Windows 8中使用标准的Windows aero主题时,VS2012让我可以在明暗主题之间进行选择,但我在Windows 8中创建了一个方便的高对比度主题,现在VS设置中只有一个灰色选项说"高对比度",我无法改变它.
我属于少数人,他们喜欢Visual Studio的新黑暗主题,但遗憾的是我不能将它与新的高对比度Windows主题一起使用.
有人可以帮我这个吗?
我必须阅读本机操作系统的高对比度模式,并且必须在我的产品上应用设置.现在对于Windows我做了这样的事情:
try {
Toolkit toolkit = Toolkit.getDefaultToolkit();
boolean highContrast = (Boolean)toolkit.getDesktopProperty("win.highContrast.on" );
}catch(Exception e) {
}
Run Code Online (Sandbox Code Playgroud)
这适用于Windows,但我需要桌面属性来读取Linux高对比度设置.任何人都可以告诉我什么是Linux的桌面属性?
任何人都可以解释在高对比度模式下CSS会发生什么?
http://hardlikesoftware.com/weblog/2009/11/04/css-sprites-vs-high-contrast-mode/
在高对比度模式下,所有背景图像和颜色都被忽略 - 取而代之的是高对比度颜色,如黑色白色或白色黑色.另一个问题是背景图像并不总是打印出来.
除此之外还有什么吗?

我的登录表单看起来不是很理想,我正在尝试调查.
直到最近还有https://www.google.com/search?q=axs+aol+accesibility+library,但它似乎不再存在.
一般来说,我看到有两种方法:
在任何一种情况下,我都想知道在CSS的变化方面在高对比度模式下会发生什么.

如您所见,行为各不相同,因此您的专业知识将受到赞赏.
由于调暗/变暗解决了Chrome 页面加载之间臭名昭著的白色闪烁问题,如何利用小的默认加载通知(如下)来覆盖整个屏幕?
换句话说,是否可以在页面加载之间创建一整面文本墙,以便高对比度扩展可以使整个屏幕变暗,就像它使此处的一小部分变暗一样?:

这确实很老套,但有充分的理由。所有其他解决方案不再适用于 Chrome 40+:
html background google-chrome google-chrome-extension high-contrast
我有一个 React/TypeScript 项目,我试图检测用户是否启用了 Mac OS 的任何高对比度辅助功能设置:反转颜色、使用灰度、区分无颜色、增加对比度或增加显示对比度设置。
我想使用 JavaScript/TypeScript 检测这些。
到目前为止,我只能检测到Invert colors。
如何检测用户是否启用了任何其他 Mac OS 辅助功能设置?
更多信息:
当按Shift+ Left+ Alt+ PrintWindows切换到高对比度模式时 - 有没有机会在网页上检测到(使用JavaScript或CSS)?
有没有机会在HTTP-Request(也就是服务器端,例如通过PHP或Ruby)检测到它?
我一直在关注高对比度模式和背景图像精灵的讨论,但我有一个关于内联图像和HCM的更基本的问题.对于没有HCM屏幕阅读器的低视力用户,他们是否难以看到内嵌图像,因为它可能没有足够的对比度?或者他们是否希望使用浏览器插件用替换文字替换内嵌图像?
我理解屏幕阅读器用户会受益,因为alt文本被读出来了吗?但是,没有屏幕阅读器的低视力用户呢?
我正在尝试以高对比度模式访问我的网站。为了检测何时启用高对比度模式,我创建了一个JavaScript方法来检测是否禁用了背景图像,因为高对比度模式会禁用背景图像。然后,如果浏览器处于高对比度模式,我将附加一个CSS文件来修复高对比度显示的问题。这在Firefox,Edge和IE中可以正常工作,但是Chrome使用其自己的扩展名来创建高对比度,并且它不会禁用背景图像,因此在Chrome中不附加用于高对比度的CSS。
通过搜索,我发现Chrome在网站上添加了过滤器,而不是启用/禁用/更改网站颜色或图像本身。我进行了搜索,但找不到任何可测试的内容以检查Chrome是否使用高对比度模式。如果有一种方法可以检测到正在使用的扩展名,那也可以解决问题,但是我也没有找到一种方法来做到这一点。
我的代码实际上运行良好,我所需要的只是能够检测Chrome中的高对比度模式。这是我用来检查高对比度模式的方法。
let highContrast = (options) => {
let hcDetect = jQuery(`<div id="jQHighContrastDetect"></div>`).css('background', 'url(../uploads/c-wht-small.png)');
hcDetect.appendTo(document.body);
if (hcDetect.css('background-image') === 'none') {
$('head').append('<link rel="stylesheet" href="../css/highcontrast.min.css" type="text/css" media="all">');
}
}Run Code Online (Sandbox Code Playgroud)
在我正在CMFCMenuButton使用MSVC 2013 的C++ MFC项目中.
当我切换高对比度模式时,按钮没有正确重新绘制(为了比较,显示正常按钮):

调用Invalidate()或ShowWindow(SW_HIDE);ShowWindow(SW_SHOW);似乎没有效果 - 即使最小化对话框也不会导致正确的重绘.如何强制按钮重新绘制更新的系统颜色?
更新:切换对比度模式后强制颜色只会使按钮文本可见,但按钮本身(边框)不可见.
m_ctrlOkButton.SetFaceColor(::GetSysColor(COLOR_BTNFACE));
m_ctrlOkButton.SetTextColor(::GetSysColor(COLOR_BTNTEXT));
Run Code Online (Sandbox Code Playgroud) 我已按照本指南在具有高对比度Windows主题的VS2017中启用深色主题:如何将Visual Studio 2012深色主题与Windows 8高对比度主题一起使用?
效果很好。
现在我正在尝试使用SQL Mangement Studio 2017。
我已在C:\ Program Files(x86)\ Microsoft SQL Server \ 140 \ Tools \ Binn \ ManagementStudio \ ssms.pkgundef中启用了深色主题
但是,它似乎已被Windows的“高对比度”主题所取代:https: //i.stack.imgur.com/KBGE2.png
我一直在RegEdit中进行挖掘,并在以下位置找到了Sql Studio的主题:
HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ SQL Server Management Studio \ 14.0_Config \ Themes
https://i.stack.imgur.com/51MhW.png
有4个主题。
a5c004b4-2d4b-494e-bf01-45fc492522c7是高对比度主题,并且已锁定
我已经尝试过以下没有运气的情况:
将其内容a5c004b4-2d4b-494e-bf01-45fc492522c7替换为深色主题:1ded0138-47ce-435e-84ef-9ec1f439b749->一旦程序启动,它就会被覆盖
就像ssms.pkgundef中的黑暗主题一样禁用它-> SQL Studio无法启动
看起来主题是在程序启动时注入的,所以也许有一种方法可以禁用它?
有什么建议:P?
我正在努力调整一些组件,以便它们在高对比度模式下都能正常工作并看起来不错。Edge 似乎在 IE11 未添加的所有文本下添加黑色背景。我似乎无法找到一种在 CSS 中定位此背景的方法,或任何其他方法来规范两个浏览器之间的行为。
例如,假设我有以下内容:
<div class="SelectedText">
Text!
</div>
Run Code Online (Sandbox Code Playgroud)
假设我将background-color: cyan;和分配color: black;给了.SelectedTextdiv。
在这种情况下,IE11 按预期使用具有指定颜色的 div 和文本呈现它。然而,在 Edge 中,div 背景和文本被赋予正确的颜色,但文本本身在其背后绘制了黑色背景,使其在黑色文本上无法读取。
下图说明了在具有上述基本相同标记的菜单项上下文中发生的此问题。
有什么方法可以禁用或针对 Edge 添加的这个额外背景?
css high-contrast internet-explorer-11 microsoft-edge web-accessibility
我在一个项目中使用 AvalonDock。为了这个例子,它的结构如下:
<ad:DockingManager>
<ad:DockablePane>
<ad:DockableContent Title="Test1">
</ad:DockableContent>
<ad:DockableContent Title="Test2">
</ad:DockableContent>
</ad:DockablePane>
</ad:DockingManager>
Run Code Online (Sandbox Code Playgroud)

这很好,但不幸的是,标签在高对比度主题上看起来不太好,如下所示。

理想情况下,我想重新设置选项卡的样式以使用系统颜色作为背景(例如窗口颜色)。这可能吗?
谢谢,艾伦
high-contrast ×13
css ×4
javascript ×3
themes ×2
avalondock ×1
background ×1
c# ×1
c++ ×1
html ×1
java ×1
linux ×1
macos ×1
mfc ×1
safari ×1
sql ×1
styling ×1
windows-10 ×1
windows-8 ×1
wpf ×1