当resizable: false时,最大化/最小化无法在electron中正常工作

3
我正在使用Electron开发桌面应用程序。该应用程序具有无边框窗口,我编写了一个JS最大化/还原按钮,它运行良好。
<button class="max" onclick="MaxUnMax();">&nbsp;</button>

JS

function MaxUnMax () {
   const remote = require('electron').remote
   const { BrowserWindow } = remote;
   var window = remote.getCurrentWindow();
   if (!window.isMaximized()) {
      window.maximize();
   } else {
      window.unmaximize();
   }
}

但是当我禁用了调整大小的功能(在main.js中通过resizable: false)时,最大化/还原按钮就无法正常工作。


你有没有看过这篇帖子 https://dev59.com/labja4cB1Zd3GeqPbiOm#46882965 ?也就是说,试着使用getFocusedWindow而不是getCurrentWindow。这样能解决你的问题吗? - kontrollanten
{btsdaf} - Utpal Sarkar
1个回答

0

我遇到了类似的问题,我找到了这个解决方案:

不要使用window.isMaximized(),而是使用window.isFullScreen()

对于window.maximize()window.unmaximize(),我使用了window.setFullScreen(true)window.setFullScreen(false);

对我来说即使 resizable: false 也可以正常工作。

解决方案1:

const remote = require('electron').remote;
const { BrowserWindow } = remote;
function MaxUnMax () {
   var window = remote.getCurrentWindow();
   if (!window.isFullScreen()) {
      window.setFullScreen(true);
   } else {
      window.setFullScreen(false);
   }
}

解决方案2:

const remote = require('electron').remote;
const { BrowserWindow } = remote;
function MaxUnMax () {
   var window = remote.getCurrentWindow();
   window.setFullScreen(!win.isFullScreen());
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接