在 Electron 中,如何反转窗口的最大化?

问题描述 投票:0回答:1

我正在尝试在 Electron 中实现最大化和反向最大化(回到之前的大小),但不确定如何让它工作。最大化可以正常工作,但反转就不行了。

这就是我所拥有的。

在我的主要流程中我有这两个

ipcMain.on("maximize-window", () => {
  const window = BrowserWindow.getFocusedWindow();
  if (window) window.maximize();
});

ipcMain.on("unmaximize-window", () => {
  const window = BrowserWindow.getFocusedWindow();
  if (window) window.restore();
});

然后在预加载中我像这样暴露它们

maximizeWindow: () => ipcRenderer.send("maximize-window"),
unmaximizeWindow: () => ipcRenderer.send("unmaximize-window"),

然后在我的渲染器中,在带有图标的组件中我将其设置如下

  const [isMaximized, setIsMaximized] = useState(false);

  const handleMaximize = () => {
    window.electron.maximizeWindow();
    setIsMaximized(true);
  };

  const handleUnmaximize = () => {
    window.electron.unmaximizeWindow();
    setIsMaximized(false);
  };

在按钮上,我根据当前状态调用其中之一。

  <button
    onClick={isMaximized ? handleUnmaximize : handleMaximize}
    className="w-5 h-5 cursor-pointer flex items-center justify-center no-drag"
  >
    <FaRegSquare className="h-3 w-3 text-black" />
  </button>

但正如我所说,反转似乎没有任何作用。我怎样才能让它发挥作用?我是否必须在最大化之前存储大小然后手动设置?有没有办法恢复到最大化之前的状态?

electron
1个回答
0
投票

您可能想使用

unmaximize
方法而不是
restore

© www.soinside.com 2019 - 2024. All rights reserved.