一、在主进程中监听窗口大小变化
1. 使用 `BrowserWindow` 的实例方法
在主进程中,可以获取窗口实例并添加 `resize` 事件监听器。
const { BrowserWindow } = require("electron");
const win = BrowserWindow.getFocusedWindow();
if (win) {
win.on("resize", () => {
const { height } = win.getBounds();
console.log(`窗口高度变为:${height}`);
});
}
二、在渲染进程中监听窗口大小变化
1. 使用 `ipcRenderer` 与主进程通信
在渲染进程中,可以使用 `ipcRenderer` 发送消息给主进程,让主进程监听窗口大小变化并将结果发送回渲染进程。
1.1 首先在渲染进程中引入 `ipcRenderer`
<script>
const { ipcRenderer } = require("electron");
ipcRenderer.send("start-watch-window-size");
</script>
1.2 然后在主进程中监听来自渲染进程的消息并添加窗口大小变化监听器
const { ipcMain, BrowserWindow } = require("electron");
ipcMain.on("start-watch-window-size", () => {
const win = BrowserWindow.getFocusedWindow();
if (win) {
win.on("resize", () => {
const { height } = win.getBounds();
win.webContents.send("window-size-changed", height);
});
}
});
1.3 最后在渲染进程中接收主进程发送的窗口高度变化消息
<script>
const { ipcRenderer } = require("electron");
ipcRenderer.on("window-size-changed", (event, height) => {
console.log(`窗口高度变为:${height}`);
});
</script>