首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Windows暗模式下获取重音颜色

在Windows暗模式下获取重音颜色
EN

Stack Overflow用户
提问于 2022-02-01 20:43:12
回答 1查看 144关注 0票数 0

利用电子技术建立程序

的想法:

我希望我的程序的重音颜色与来自Windows的相同。

问题:

对于Windows的光模式,一切正常,传递的颜色与Windows的重音颜色相匹配。但是当我切换到黑暗模式时,我仍然会得到光模式的重音颜色。

可能的解决方案:

暗模式重音颜色的Windows选择是如何工作的?颜色总是增加一定的亮度水平吗?还是有预先保存的模式?

以下是我的当前代码:

main.js

代码语言:javascript
运行
复制
let color = systemPreferences.getAccentColor()

  mainWindow.on('ready-to-show', function() {
    mainWindow.webContents.send('accColor', {'Color': color});
  })

ipc.js

代码语言:javascript
运行
复制
ipc.on('accColor', (evt, message) => {
    let color = message['Color']
    const hex2rgb = (hex) => {
        const r = parseInt(hex.slice(1, 3), 16)
        const g = parseInt(hex.slice(3, 5), 16)
        const b = parseInt(hex.slice(5, 7), 16)
        return [ r, g, b ]
    }
    let baseRGB = hex2rgb('#' + color)
    document.querySelector('body').style.setProperty('--accent-default-rgb', baseRGB)
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-02 11:36:57

虽然我找不到一个函数返回暗模式重音颜色的值,但我能够改变颜色的亮度,从而创建一个比较合适的解决方案。

下面是我添加的代码:

ipc.js

代码语言:javascript
运行
复制
function adjustDark(color, amount) {
    return '#' + color.replace(/^#/, '').replace(/../g, color => ('0'+Math.min(255, Math.max(0, parseInt(color, 16) + amount)).toString(16)).substr(-2));
}


let darkHEX = adjustDark(color, 96)
let darkRGB = hex2rgb(darkHEX)
document.querySelector('body').style.setProperty('--accent-default-rgb', darkRGB)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70947268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档