Я создаю приложение, используя 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")
}
}()