电子-如何处理多台显示器的屏幕窗口?

问题描述

所以基本上我有一个browserWindow,如果用户将其移动到屏幕上的任何位置,我会存储该信息,然后在重新启动时将窗口放回其关闭位置。我正在尝试解决的问题如果用户将窗口一直移动到屏幕之外的一侧,该怎么办?像这样:

enter image description here

现在我知道我可以执行类似x = 1920-width_of_app的操作,并在用户重新启动应用程序后将窗口重新显示在屏幕上

enter image description here

问题是当我有多台显示器时。我可以获取显示器的尺寸并计算轴,可以执行诸如display_1_width + display_2_width之类的操作。

enter image description here

这样,我仍然可以执行max_x-width_of_app的操作,但是然后移动,用户决定更改其主显示,现在所有突然轴都为负。

enter image description here

现在,如果用户将窗口一直向左移动到屏幕之外,那么我对如何重置位置感到困惑,因为我不知道何时应该处理负轴,因此将其重新显示在屏幕上。当主监视器位于左侧时,则0为极限,但如果主监视器位于右侧,则该轴可以移至0以下。

所以我的问题是我该如何处理这种情况?电子是否提供一种将窗户重新带回视野的方法?有什么我可以遵循的标准吗?也许有人可以告诉我一种获取多个显示器的最大和最小轴的聪明方法。提前致谢!任何帮助将不胜感激!

解决方法

您可以尝试编码以使用轴的绝对值,因为它总是会产生正数。这样做的唯一缺点是,应用的位置将始终基于整个宽度,因为绝对值中没有负数。

类似于x = | maxX-width_of_app |的事物。这样,即使结果为负,X的值也将为正。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...