我的应用程序有问题。我创建了一个漂亮的登录窗口,这是一个带有选项{透明:真,框架:假}的窗口。
用户登录后。我想"重定向"到仪表板,我需要将选项"透明"设置回 false,因为仪表板的背景是白色的,我只能在完全透明的窗口中使用打印的字体。
是否有任何解决方法可以使电子窗口恢复为无透明而不重新创建它。
应用.js:
const electron = require('electron');
const { BrowserWindow } = electron;
const { app } = electron;
const window = require('electron-window');
const { MainProcess } = require("./modules/ipcHelper.js");
const io = require('socket.io-client');
const port = 8888;
let socket;
require('electron-reload')(__dirname)
let mainWindow;
app.on('ready', () => {
mainWindow = window.createWindow({
width: 835,
height: 750,
frame: false,
transparent: true,
});
let testwindow = new BrowserWindow({
width: 835,
height: 750,
frame: false,
transparent: true,
});
mainWindow.showUrl(`./app/index.html`, () => {
});
let mainProcess = MainProcess(mainWindow);
mainProcess.onReady(() => {
mainProcess.on('auth', (arg, callback) => {
socket = io('http://' + arg.servername + ':' + port);
socket.on("connect", () => {
socket.emit('auth', { username: arg.username, password: arg.password }, (response) => {
if (response.success === true){
callback({ success: true });
//Here i want to set transparenty back to false
}
else
callback({ success: false, code: response.code });
});
});
socket.on("connect_error",() => {
callback({ success: false, code: 3 });
});
});
});
})
BrowserWindow
有一堆方法,可用于动态更改此类属性。我认为您要找的是win.setOpacity()
https://github.com/electron/electron/blob/master/docs/api/browser-window.md#winsetopacityopacity-windows-macos
如果在渲染器过程中执行此操作,则必须使用remote
https://github.com/electron/electron/blob/master/docs/api/remote.md