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