检测 Electron 应用程序何时移动到不同 monitor/display
Detect when Electron app is moved to different monitor/display
我正在构建一个 Electron 应用程序,我配置 window 大小的方式是基于 monitor/display 维度的百分比。
但是,当用户拥有多个显示器时,我很快注意到一个问题。初始 window 尺寸是计算出来的,当用户更改为第二个显示器时永远不会重新计算,因此在显示器尺寸不同的情况下,window 具有另一台显示器上的尺寸错误。
基本上我在这里寻找的是任何类型的事件,它将检测用户何时更改监视器 he/she 正在使用该应用程序,这样我就可以重新计算window 大小基于新的显示器维度。
您可以像这样使用 move
event of the BrowserWindow
in combination with the screen
API:
const {app, BrowserWindow} = require("electron");
let mainWindow;
app.on("ready", function() {
mainWindow = new BrowserWindow();
// Screen module must be imported after app is ready (as per docs)
const {screen} = require("electron");
mainWindow.on("move", () => {
const bounds = mainWindow.getBounds();
const currentDisplay = screen.getDisplayNearestPoint({x: bounds.x, y: bounds.y});
// Perform your actions here..
console.log(currentDisplay);
});
});
在事件处理程序中,您随后可以获取显示指标并根据该指标执行所需的任何操作。
请注意 move
event fires very frequently. You may check out the moved
事件或在需要时自行实施某种形式的去抖动。
我正在构建一个 Electron 应用程序,我配置 window 大小的方式是基于 monitor/display 维度的百分比。
但是,当用户拥有多个显示器时,我很快注意到一个问题。初始 window 尺寸是计算出来的,当用户更改为第二个显示器时永远不会重新计算,因此在显示器尺寸不同的情况下,window 具有另一台显示器上的尺寸错误。
基本上我在这里寻找的是任何类型的事件,它将检测用户何时更改监视器 he/she 正在使用该应用程序,这样我就可以重新计算window 大小基于新的显示器维度。
您可以像这样使用 move
event of the BrowserWindow
in combination with the screen
API:
const {app, BrowserWindow} = require("electron");
let mainWindow;
app.on("ready", function() {
mainWindow = new BrowserWindow();
// Screen module must be imported after app is ready (as per docs)
const {screen} = require("electron");
mainWindow.on("move", () => {
const bounds = mainWindow.getBounds();
const currentDisplay = screen.getDisplayNearestPoint({x: bounds.x, y: bounds.y});
// Perform your actions here..
console.log(currentDisplay);
});
});
在事件处理程序中,您随后可以获取显示指标并根据该指标执行所需的任何操作。
请注意 move
event fires very frequently. You may check out the moved
事件或在需要时自行实施某种形式的去抖动。