Главное окно авторазмера - PullRequest
       5

Главное окно авторазмера

0 голосов
/ 13 декабря 2018

Я создаю приложение, используя Go-Astilectron (платформа Electron для Go).

Мое приложение имеет безрамное и прозрачное окно, размер которого должен быть изменен в зависимости от его содержимого.Насколько я могу судить, я обязан установить свойства width и height окна в Electron, в противном случае он по умолчанию будет иметь значение 800x600.

Я хотел бы знать, есть лиспособ для Electron автоматически изменять размер окна в зависимости от его содержимого.

Я мог бы использовать подход «один размер подходит всем», но, поскольку мое окно безрамное и прозрачное, некоторые его части в конечном итоге окажутся сверхуиз-за других вещей, и поскольку не происходит щелчка, пользователь будет смущен, думая, что он нажимает на какое-то другое приложение, когда он фактически нажимает на мое приложение.

Вот мой код для создания окна:

var w *astilectron.Window

log.Debug("Starting astilectron...")
window := []*bootstrap.Window{{
    Homepage: "http://localhost:3000",
    Adapter: func(i *astilectron.Window) {
        w = i
    },
    Options: &astilectron.WindowOptions{
        MinHeight:          astilectron.PtrInt(50),
        MinWidth:           astilectron.PtrInt(50),
        AlwaysOnTop:         astilectron.PtrBool(true),
        Transparent:         astilectron.PtrBool(true),
        Closable:            astilectron.PtrBool(false),
        Minimizable:         astilectron.PtrBool(false),
        Frame:                   astilectron.PtrBool(false),
        Movable:                 astilectron.PtrBool(true),
        SkipTaskbar:         astilectron.PtrBool(false),
        Resizable:           astilectron.PtrBool(false),
    },
}}

go func() {
    err := bootstrap.Run(bootstrap.Options{
        Windows: window,
        Debug: true,
    })

    if err != nil {
        log.WithError(err).Fatal("Error with Astilectron")
    }
}()

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Попробуйте установить UseContentSize: astilectron.PtrBool(true).

UseContentSize Изменение размера окна в соответствии с размером страницы.Вот что говорится в документации:

Ширина и высота будут использоваться в качестве размера веб-страницы, что означает, что фактический размер окна будет включать в себя размер рамки окна и будет немного больше.По умолчанию установлено значение false.

Документы

0 голосов
/ 13 декабря 2018

попробуйте сделать что-то вроде этого

  const { screen } = require('electron');
  const size = screen.getPrimaryDisplay().workAreaSize;
  // Create the browser window.
  mainWindow = new BrowserWindow({
   x: 0,
   y: 0,
   width: size.width,
  height: size.height
});

Надеюсь, это сработает.

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