Электронный метод setSize и ReactJS - PullRequest
0 голосов
/ 10 ноября 2019

Я удалил рамку из электронов и добавил пользовательские кнопки для свертывания, закрытия и максимизации / минимизации.

свертывание и закрытие работает нормально, но при сворачивании / максимизации мигает и возвращается в полноэкранный режим

const [bounds, setBounds] = useState({width: 600, height: 600, x: 50, y: 50}) - это границы по умолчанию

useEffect(() => {
        if (maximized) {
          remote.BrowserWindow.getFocusedWindow().maximize()
        } else {
          //here is a problem
          remote.BrowserWindow.getFocusedWindow().setBounds(bounds)
        }
      }, [bounds, bounds.height, bounds.width, maximized])

Как правильно изменить размер окна? Тоже попробовал remote.BrowserWindow.getFocusedWindow().setSize()

1 Ответ

0 голосов
/ 14 ноября 2019

Создайте прозрачное окно с надписью fullscreenable = false, как это

const mainWindow = new BrowserWindow({
      width: customWidth,
      height: CustomHeight,
      x: positionMarginX,
      y: positionMarginY,
      skipTaskbar: process.platform !== 'darwin',
      fullscreenable: false,
      frame: false,
      resizable: false,
      hasShadow: false,
      transparent: true,
      minimizable: false,
      maximizable: false,
      darkTheme: true,
      closable: false,
      titleBarStyle: 'customButtonsOnHover',
      webPreferences: {
        webSecurity: false,
        nodeIntegration: true,
      },
    })

И использовать рендеринг IPC на стороне реакции, как этот

 ipcRenderer.send(
          'window-resize',
          300, // height
          300  // width
        )

Затем используйте IPC main для обработки этого события следующим образом

ipcMain.on('window-resize', (e,height, width) => {
windowSize = {
        width: width,
        height: height,
        x: customX,
        y: customY,
      }
      mainWindow.setBounds(windowSize)
})

и, если вы работаете над пользовательским управлением, перейдите по этому URL-адресу Безрамное окно с электронными элементами управления (Windows)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...