电子:最大化浏览器窗口重叠窗口的任务栏



我在使用Electron BrowserWindow时遇到问题,因为当我调用函数:win.maximize()时,应用程序与Window的任务栏重叠,就好像它处于全屏模式一样,但是我设置了全屏:false。

这是截图的链接!https://www.dropbox.com/s/a7b8h8ukaz4pf26/default%20window%20size.png?dl=0https://www.dropbox.com/s/8wf0jcv5kp04c25/maximized%20window.png?dl=0

这是我的代码:

主.js(默认电子窗口设置):

const {app, BrowserWindow} = require('electron');
const path = require('path');
let mainWindow;
app.on('window-all-closed', function(){
    // Notice on OS X the application don't close when you quit window
    // Darwin is the platform name when OS X in loaded
    if(process.platform != 'darwin') {
        app.quit();
    }
});
app.on('ready', function() {
    mainWindow = new BrowserWindow({
        width: 700,
        height: 450,
        frame: false,
        resizable: false,
        backgroundColor: '#333333',
        'node-integration': true
    });
    mainWindow.loadURL(path.join(__dirname, '/index.html'));
    mainWindow.on('closed', function() {
        mainWindow = null;
    });
});

默认值.js(它处理窗口按钮:最小化、最大化和关闭):

const remote = require('electron').remote;
(function(){
    function init(){
        document.getElementById('minimize-btn').addEventListener('click', function(){
            var window = remote.getCurrentWindow();
            window.minimize();
        });
        document.getElementById('maximize-btn').addEventListener('click', function(){
            var window = remote.getCurrentWindow();
            if (!window.isMaximized()) {
                window.maximize();
            } else {
                window.unmaximize();
            }
        });
        document.getElementById('close-btn').addEventListener('click', function(){
            var window = remote.getCurrentWindow();
            window.close();
        });
    }
    init();
})();

感谢您的帮助!

>我刚刚使用 Windows 10 在我自己的电子应用程序上检查了此功能,它与任务栏不重叠,即使我有一个代码几乎完全相同的函数:

function toggleMaximize() {
  var window = remote.getCurrentWindow();
  if(window.isMaximized()) {
    window.unmaximize();
  } else {
    window.maximize();
  }  

这些是我的浏览器窗口设置,它们也非常相似:

mainWindow = new BrowserWindow({
  width: windowState.width,
  height: windowState.height,
  x: windowState.x,
  y: windowState.y,
  show: false,
  frame: false,
  transparent: false
});

其中 windowState 仅存储/恢复应用程序窗口的先前位置和大小。

我想我是这样解决的:

首先,运行应用程序设置一个带有框架:true的窗口,关闭它,然后使用框架:false运行它。就是这样!我不知道这是否是一个错误。

这个问题可以结束了。

这一定是为什么我记得遇到类似的问题并且不知道它是如何解决的。如果尚不存在类似的问题,有人应该在 github 存储库上打开问题。

最新更新