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

时间:2017-10-17 16:46:15

标签: javascript node.js electron

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

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

这是我的代码:

main.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;
    });
});

default.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();
})();

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

我想我是通过这种方式解决的:

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

这个问题可以关闭。

答案 1 :(得分:0)

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

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

这些是我的BrowserWindow设置,它们也非常相似:

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

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

答案 2 :(得分:0)

这就是为什么我记得遇到类似的问题并且不知道它是如何修复的原因。如果类似问题尚未存在,则有人应在github repo上打开问题。