2017-10-17 59 views
1

我有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(); 
})(); 

谢谢你的帮忙!

回答

0

这就是为什么我记得遇到类似的问题,不知道它是如何修复的。如果还没有类似的问题,有人应该在github repo上打开一个问题。

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只是存储/恢复应用程序窗口的上一个位置和大小。

+0

嗨史蒂文森! 我重用了你的代码并实现了窗口状态包,但它不起作用。 我在Window 7和8上测试过,它是同样的问题。 –

1

我想我解决它通过这种方式:

首先,运行应用程序设置窗口框架:真正,关闭它,然后用帧运行:。而已!我不知道这是否是一个错误。

这个问题可以关闭。

相关问题