更改电子窗口背景颜色而无需重新创建窗口?



我想在 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>

最新更新