- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在Windows 10上,“深色主题”现在可用。
在Tk中,GetSysColor()用于获取Windows系统颜色,并且
WM_SYSCOLORCHANGE用于跟踪颜色变化。
选择高对比度主题时,Tk会拾取颜色变化。
选择dark-ui时,Tk看不到颜色变化,并且重新启动程序也不会拾取颜色变化。
要获得这些颜色是否需要做一些特别的事情?
编辑:
这些是Tk中的相关文件:
list :http://core.tcl.tk/tk/artifact/52574f6bb5c1c0d6
监控代码:http://core.tcl.tk/tk/artifact/4629f358581eb7aa
初始化/VS API代码:http://core.tcl.tk/tk/artifact/ab91ac197b786344
最佳答案
更新:Microsoft在较新版本的Windows 10中改进了深色主题处理,因此在某些情况下,此答案将已过时。
通常,“深色/浅色主题”开关仅适用于“现代” UWP应用。您可以验证“计算器”,“日历”和“联系人”是否切换了颜色,而经典应用程序“资源管理器”,“记事本”和“绘画”却没有。
我不确定是否要将Tk移植到UWP,因为您似乎没有朝这个方向做任何步骤。在经典应用程序中,黑暗模式是有问题的,因为基本的Windows控件(按钮,标签,编辑字段)不支持它。
如果您真的想响应经典应用程序中的“明/暗”设置开关进行更改,请从DWORD
获取HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme
值
bool IsDarkThemeActive()
{
DWORD type;
DWORD value;
DWORD count = 4;
LSTATUS st = RegGetValue(
HKEY_CURRENT_USER,
TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"),
TEXT("AppsUseLightTheme"),
RRF_RT_REG_DWORD,
&type,
&value,
&count );
if ( st == ERROR_SUCCESS && type == REG_DWORD )
return value == 0;
return false;
}
更改“亮/暗”设置后,顶级窗口将显示
WM_SETTINGCHANGE
消息。
关于winapi - Windows 10 : GetSysColor() does not get dark ui color theme,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52101827/
在Windows 10上,“深色主题”现在可用。 在Tk中,GetSysColor()用于获取Windows系统颜色,并且 WM_SYSCOLORCHANGE用于跟踪颜色变化。 选择高对比度主题时,T
我是一名优秀的程序员,十分优秀!