我想在 Electron 窗口中动态设置背景颜色,而无需重新创建窗口。不幸的是,就我的目的而言,仅仅使用 CSS 设置 body
等元素的颜色是不够的。
看来只有BrowserView
has a setBackgroundColor
function according to the documentation.
BrowserWindow
确实有这个功能,但不幸的是它不起作用。有没有已知的替代方案?
最佳答案
直接在 BrowserWindow
上应用背景颜色时,它对我有用。
它似乎没有记录,但它 exists (从 0.34.1 开始)
const { app, BrowserWindow } = require('electron')
function createWindow () {
let mainWindow = new BrowserWindow({
transparent: true
})
mainWindow.loadURL("http://browserify.org") // transparent background
mainWindow.setBackgroundColor('#56cc5b10') // turns opaque brown
}
app.on('ready', createWindow)
<小时/>
更新(2021):也可以在创建窗口时直接设置背景颜色:mainWindow = new BrowserWindow({backgroundColor: "#RRGGBB", ... });
(谢谢,@carlosrafaelgn)
<小时/>从渲染器进程中执行相同的操作似乎确实有问题。
但是我注意到,如果您取消聚焦然后聚焦窗口,它将开始正常工作。
<script>
const { remote } = require('electron')
const mainWindow = remote.getCurrentWindow()
mainWindow.setBackgroundColor('#56cc5b10')
mainWindow.blur()
mainWindow.focus()
</script>
关于javascript - 更改 Electron 窗口背景颜色而不需要重新创建窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52599019/