背景:electron + vue开发一个桌面应用,其中新增一个功能:应用主题颜色可由用户输入设置,即用户在渲染进程给主进程发出信号,主进程接收后,修改标题栏的样式,使之与窗口内的样式统一,官网是win.setTitleBarOverlay(options)
选项
对象
color
String (可选) Windows - 启用窗口控制时覆盖面的 CSS 颜色
symbolColor
String (可选) Windows - 启用时窗口控制中符号的 CSS 颜色
height
Integer (可选) Windows - 标题栏和 Window Controls Overlay,以像素为单位。
代码如下
ipcMain.on('changeColor', (event, info) => {
const { color, background } = info
console.log(win.setTitleBarOverlay, win.setBackgroundColor)
win.setBackgroundColor(background)
win.setTitleBarOverlay(
{
color,
symbolColor: background,
}
)
})
报错如下:win.setTitleBarOverlay is not a function代码中打印win.setTitleBarOverlay
结果是undefined
咨询网友,发现他们是可以的,怀疑是版本问题,根据网上教程项目electron是以vue add
的形式安装的,安装的时候最新的版本只能是13.0.0。 问了他的版本号,package.json
里直接改成^18.0.2
重新安装一遍依赖,就可以了,目前没有发现其他问题,仅供参考