【问题标题】:Electron - How to handle off screen window on multiple monitors?Electron - 如何处理多台显示器上的屏幕外窗口?
【发布时间】:2021-02-17 16:49:37
【问题描述】:

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

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

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

这样我仍然可以做一些 max_x - width_of_app 但是然后 baam,用户决定更改其主显示,现在所有突然的轴都是负数。

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

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

【问题讨论】:

  • 如果应用程序启动鼠标所在屏幕的中心屏幕(就像在大多数窗口管理器中一样),我会更好,大多数用户的大脑都在鼠标光标附近而不是他们最后移动的地方它,可能是底部/右侧,因此只有 1 个像素显示要抓取到左侧,这可能被认为是一个错误

标签: javascript windows electron multiple-monitors


【解决方案1】:

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

类似于 x = |maxX - width_of_app| 的东西。这样,即使结果是负数,X 的值也是正数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多