electron [Feature Request]: Add flag for creating window in maximized state

oxiaedzo  于 6个月前  发布在  Electron
关注(0)|答案(6)|浏览(83)

预检清单

问题描述

目前,可以使用以下代码创建一个最大化的窗口:

const createWindow = () => {
	const mainWindow = new BrowserWindow();
	mainWindow.maximize();
};

这种方法有一个缺点:窗口首先被创建,然后才被最大化,这很丑陋,因为它会产生渲染伪影,用户在窗口最大化之前也可以看到屏幕。

建议的解决方案

我认为如果有一个标志可以指定窗口应该以最大化状态创建就更好了。
例如:

const createWindow = () => {
	const mainWindow = new BrowserWindow({
		maximized: true
	});
}

Chrome 似乎已经支持类似的东西,通过在启动时将其传递给它。

考虑过的替代方案

其他信息

1zmg4dgp

1zmg4dgp1#

在最大化窗口之前,您可以在创建它时隐藏窗口(show: false),以防止视觉 Flink 。根据文档,最大化窗口也会显示它。

6tr1vspr

6tr1vspr2#

谢谢,@pushkin 🙂 这个方法可行且看起来不错!
我仍然想知道是否应该有一个选项来创建最大化状态的窗口?至少Windows支持这个功能,通过在创建窗口时传递WS_MAXIMIZE
(参见https://docs.microsoft.com/en-us/windows/win32/winmsg/window-styles)

efzxgjgh

efzxgjgh3#

@Bosch-Eli-Black 在窗口创建时这样做与在创建后、显示前这样做有什么优势?

u1ehiz5o

u1ehiz5o4#

这是一个有点牵强附会的例子,但是由于maximize()函数也会显示窗口,所以在最大化的状态下无法真正创建一个隐藏窗口。你必须先调用maximize(),然后再调用hide()。这个问题出现在Stack Overflow上。

mwyxok5s

mwyxok5s5#

@pushkin-似乎可以通过使用ready-to-show事件来解决,您可以等到准备好显示窗口时再调用maximize(),而不是(/以及)show()

l3zydbqr

l3zydbqr6#

@nornagon 这个特定的例子将文件加载到窗口中,但仍然希望它被隐藏。如果他们加载一个文件,ready-to-show 将触发并不恰当地显示窗口。不过,就像我说的,这有点牵强附会/奇怪。

相关问题