javascript - Electron:最大化的浏览器窗口与窗口的任务栏重叠

标签 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(默认 Electron 窗口设置):

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

感谢您的帮助!

最佳答案

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

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 仅存储/恢复应用程序窗口以前的位置和大小。

关于javascript - Electron:最大化的浏览器窗口与窗口的任务栏重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46795199/

相关文章:

javascript - 许多网站的标准反馈按钮?

javascript - 在 React Native 中登录凭据无效时如何显示警报消息?

python - 如何将 Keras 模型加载到内存中并在需要时使用它?

node.js - 模拟全局键盘快捷键以在 travis-ci 和 appveyor 中测试 Electron 应用程序

node.js - Electron 安装错误 : Failed at the electron@1. 4.6 安装后脚本 'node install.js'

javascript - 输入某个字符后显示搜索结果 angular

javascript - jQuery 过滤器 - 按属性排序和按价格排序

javascript - 添加具有不同查询的列表项

mongodb - 在 ubuntu 中无法连接到 mongodb?

javascript - 在 Electron 中捕获、修改然后输出音频