我想在 Electron 窗口中动态设置背景颜色,而无需重新创建窗口。不幸的是,就我而言,仅仅使用 CSS 设置元素的颜色(如body
(是不够的。
根据文档,似乎只有BrowserView
具有setBackgroundColor
函数。
BrowserWindow
确实具有该功能,但不幸的是它不起作用。有没有已知的替代方案?
直接在BrowserWindow
上应用背景颜色时,它对我有用。 它似乎没有记录,但它存在(从 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>