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

时间:2018-10-01 21:18:21

标签: javascript electron

我想在电子窗口中动态设置背景颜色,而无需重新创建窗口。出于我的目的,不幸的是,仅使用CSS设置body之类的元素的颜色是不够的。

似乎只有BrowserView has a setBackgroundColor function according to the documentation.

BrowserWindow确实具有该功能,但不幸的是它不起作用。有任何已知的替代方法吗?

1 个答案:

答案 0 :(得分:1)

直接在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)

在渲染器过程中执行相同的操作似乎确实很麻烦。

但是我注意到,如果您取消聚焦然后再聚焦窗口,它将开始正常工作。

  <script>
    const { remote } = require('electron')
    const mainWindow = remote.getCurrentWindow()
    mainWindow.setBackgroundColor('#56cc5b10')
    mainWindow.blur()
    mainWindow.focus()
  </script>