electron 监听窗口高端变化

一、在主进程中监听窗口大小变化

1. 使用 `BrowserWindow` 的实例方法

在主进程中,可以获取窗口实例并添加 `resize` 事件监听器。

javascript 复制代码
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`

javascript 复制代码
<script>

  const { ipcRenderer } = require("electron");



  ipcRenderer.send("start-watch-window-size");

</script>

1.2 然后在主进程中监听来自渲染进程的消息并添加窗口大小变化监听器

javascript 复制代码
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 最后在渲染进程中接收主进程发送的窗口高度变化消息

javascript 复制代码
<script>

  const { ipcRenderer } = require("electron");



  ipcRenderer.on("window-size-changed", (event, height) => {

    console.log(`窗口高度变为:${height}`);

  });

</script>
相关推荐
艾伦野鸽ggg几秒前
Vue2 模板语法与样式绑定
前端
Amos_Web几秒前
Rspack 源码解析(十一):资产 Hook 与增量构建
前端·rust·源码阅读
PC2005_cloud几秒前
Windows 数据使用量页面卡死:1097 个热点档案和 161 MB 的 SRUM 库
前端·后端
烈风逍遥3 分钟前
AI大模型中fetch 和 ReadableStream为啥一起出现
前端·人工智能
雪芽蓝域zzs4 分钟前
第 11 章:封装通用 BaseEchart 基础图表组件(Vue3 + 若依,全局复用)
vue.js·echars
PC2005_cloud12 分钟前
Nginx 防盗链配置实战:用 referer 模块保护网站静态资源
前端·后端
福兮说13 分钟前
Canvas 文字排版:measureText 量出来的宽度为什么总是不对
前端·javascript
夏幻灵19 分钟前
从零理解 Redux:从 state、action、reducer 到 Redux Toolkit 与异步请求
前端
Liu.77423 分钟前
vue-virtual-scroller 插件实战用法
vue.js
烈风逍遥26 分钟前
第四篇:AI 模块架构设计:多 Provider 切换、RAG 知识库与 Agent 编排
前端·后端·架构