【问题标题】:How can I resize a window towards the left when the Electron app is docked on the right side of the screen?当 Electron 应用程序停靠在屏幕右侧时,如何向左调整窗口大小?
【发布时间】:2019-08-30 01:53:17
【问题描述】:

我正在创建一个 Electron 应用程序,我们希望将一个具有导航外观的工具栏停靠在屏幕右侧。它需要在右侧,因为我们的大多数用户都在 Windows 上,将其停靠在左侧意味着它会重叠很多图标,并且会被开始菜单覆盖。

当用户点击一个图标时,我需要窗口向左打开/调整大小。

在应用启动时,我会创建一个新窗口

mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    center: true,
    backgroundColor: '#18A4FC'
  })

然后在用户通过身份验证后,我使用 ipcRender 向 main.js 文件发送成功消息。目前,这使用 setBounds 方法和屏幕尺寸将窗口“停靠”在屏幕右侧。

ipcMain.on('login-success', () => {
  let display = electron.screen.getPrimaryDisplay()
  const { width, height } = display.bounds
  mainWindow.setBounds({
    x: width - 40,
    y: 0,
    width: 40,
    height: height
  })
})

然后,当用户单击图标时,我使用 setSize 来“打开”停靠栏。这意味着我将窗口的宽度从 40 像素更改为 480 像素。但它在屏幕外向右打开。我需要它向左打开。

ipcMain.on('resize-open', () => {
  let display = electron.screen.getPrimaryDisplay()
  const { height } = display.bounds
  mainWindow.setSize(480, height)
})

任何想法如何做到这一点?我知道宽度,高度从左上角设置为 0,0。有什么办法可以重置吗?

【问题讨论】:

    标签: javascript electron


    【解决方案1】:

    我最终使用了 setBounds,而是将它向左移动了我需要打开它的数量。

      let display = electron.screen.getPrimaryDisplay()
      const { width, height } = display.bounds
      mainWindow.setBounds({
        x: width - 320 ,
        y: height,
        width: 320,
        height: height
      })
    })```
    

    【讨论】:

    • 干得好找到自己的答案!如果您对自己的回答感到满意,请点击投票按钮下方的灰色复选标记接受它
    【解决方案2】:

    也许您可以尝试以下方法:

    mainWindow.setBounds({
      x: 0,
      y: 0,
      width: 480,
      height: height
    })
    

    代替:

    mainWindow.setSize(480, height)
    

    因为setBounds 函数会重置窗口位置(在本例中为 0,0)以及设置宽度和高度。

    【讨论】:

      猜你喜欢
      • 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
      相关资源
      最近更新 更多