预检清单
- 我已阅读了此项目的 Contributing Guidelines。
- 我同意遵循此项目遵循的 Code of Conduct。
- 我已在 issue tracker 中搜索了一个与我想提交的功能请求相匹配的功能请求,但没有成功。
问题描述
目前,可以使用以下代码创建一个最大化的窗口:
const createWindow = () => {
const mainWindow = new BrowserWindow();
mainWindow.maximize();
};
这种方法有一个缺点:窗口首先被创建,然后才被最大化,这很丑陋,因为它会产生渲染伪影,用户在窗口最大化之前也可以看到屏幕。
建议的解决方案
我认为如果有一个标志可以指定窗口应该以最大化状态创建就更好了。
例如:
const createWindow = () => {
const mainWindow = new BrowserWindow({
maximized: true
});
}
Chrome 似乎已经支持类似的东西,通过在启动时将其传递给它。
考虑过的替代方案
无
其他信息
无
6条答案
按热度按时间1zmg4dgp1#
在最大化窗口之前,您可以在创建它时隐藏窗口(
show: false
),以防止视觉 Flink 。根据文档,最大化窗口也会显示它。6tr1vspr2#
谢谢,@pushkin 🙂 这个方法可行且看起来不错!
我仍然想知道是否应该有一个选项来创建最大化状态的窗口?至少Windows支持这个功能,通过在创建窗口时传递
WS_MAXIMIZE
。(参见https://docs.microsoft.com/en-us/windows/win32/winmsg/window-styles)
efzxgjgh3#
@Bosch-Eli-Black 在窗口创建时这样做与在创建后、显示前这样做有什么优势?
u1ehiz5o4#
这是一个有点牵强附会的例子,但是由于
maximize()
函数也会显示窗口,所以在最大化的状态下无法真正创建一个隐藏窗口。你必须先调用maximize()
,然后再调用hide()
。这个问题出现在Stack Overflow上。mwyxok5s5#
@pushkin-似乎可以通过使用
ready-to-show
事件来解决,您可以等到准备好显示窗口时再调用maximize()
,而不是(/以及)show()
。l3zydbqr6#
@nornagon 这个特定的例子将文件加载到窗口中,但仍然希望它被隐藏。如果他们加载一个文件,
ready-to-show
将触发并不恰当地显示窗口。不过,就像我说的,这有点牵强附会/奇怪。