BrowserWindow
最后更新于:2022-04-02 03:34:16
[TOC]
> [https://electronjs.org/docs/api/browser-window#class-browserwindow](https://electronjs.org/docs/api/browser-window#class-browserwindow)
## 概述
初始化
`var win = new BrowserWindow({ width: 800, height: 600, show: false });
`
## 接口
### new BrowserWindow([options])
`options`Object
* `width`Integer - 窗口宽度,单位像素. 默认是`800`.
* `height`Integer - 窗口高度,单位像素. 默认是`600`.
* `x`Integer - 窗口相对于屏幕的左偏移位置.默认居中.
* `y`Integer - 窗口相对于屏幕的顶部偏移位置.默认居中.
* `center`Boolean - 窗口屏幕居中.
* `minWidth`Integer - 窗口最小宽度,默认为`0`.
* `minHeight`Integer - 窗口最小高度,默认为`0`.
* `maxWidth`Integer - 窗口最大宽度,默认无限制.
* `maxHeight`Integer - 窗口最大高度,默认无限制.
* `resizable`Boolean - 是否可以改变窗口size,默认为`true`.
* `movable`Boolean - 窗口是否可以拖动. 在 Linux 上无效. 默认为`true`.
* `minimizable`Boolean - 窗口是否可以最小化. 在 Linux 上无效. 默认为`true`.
* `maximizable`Boolean - 窗口是否可以最大化. 在 Linux 上无效. 默认为`true`.
* `closable`Boolean - 窗口是否可以关闭. 在 Linux 上无效. 默认为`true`.
* `alwaysOnTop`Boolean - 窗口是否总是显示在其他窗口之前. 在 Linux 上无效. 默认为`false`.
* `fullscreen`Boolean - 窗口是否可以全屏幕. 当明确设置值为When`false`,全屏化按钮将会隐藏,在 OS X 将禁用. 默认`false`.
* `fullscreenable`Boolean - 在 OS X 上,全屏化按钮是否可用,默认为`true`.
* `skipTaskbar`Boolean - 是否在任务栏中显示窗口. 默认是`false`.
* `title`String - 窗口默认title. 默认`"Electron"`.
* `icon`[NativeImage](https://www.kancloud.cn/wizardforcel/electron-doc/137812)\- 窗口图标, 如果不设置,窗口将使用可用的默认图标.
* `show`Boolean - 窗口创建的时候是否显示. 默认为`true`.
* `frame`Boolean - 指定`false`来创建一个
* `acceptFirstMouse`Boolean - 是否允许单击web view来激活窗口 . 默认为`false`.
* `disableAutoHideCursor`Boolean - 当 typing 时是否隐藏鼠标.默认`false`.
* `autoHideMenuBar`Boolean - 除非点击`Alt`,否则隐藏菜单栏.默认为`false`.
* `enableLargerThanScreen`Boolean - 是否允许允许改变窗口大小大于屏幕. 默认是`false`.
* `backgroundColor`String -窗口的 background color 值为十六进制,如`#66CD00`或`#FFF`或`#80FFFFFF`(支持透明度). 默认为在 Linux 和 Windows 上为
`#000`(黑色) , Mac上为`#FFF`(或透明).
* `hasShadow`Boolean - 窗口是否有阴影. 只在 OS X 上有效. 默认为`true`.
* `darkTheme`Boolean - 为窗口使用 dark 主题, 只在一些拥有 GTK+3 桌面环境上有效. 默认为`false`.
* `transparent`Boolean - 窗口[透明](https://www.kancloud.cn/wizardforcel/electron-doc/frameless-window.md).
默认为`false`.
* `type`String - 窗口type, 默认普通窗口. 下面查看更多.
* `titleBarStyle`String - 窗口标题栏样式. 下面查看更多.
* `webPreferences`Object - 设置界面特性. 下面查看更多.
### BrowserWindow.getAllWindows()
### BrowserWindow.getFocusedWindow() 返回聚焦的窗口,无为null
### BrowserWindow.fromId(id)
查窗口
## 实例属性
### win.webContents
返回 `webContents
`
### win.id
## 实例方法
### win.destroy() 强制关闭
### win.close() 等效于窗口的关闭
### win.focus()
### win.isFocused()
### win.show() 展示并且使窗口获得焦点.
### win.hide()
### win.maximize()/isMaximized() 窗口最大化
### win.minimize()/isMinimized()
### win.setFullScreen(Boolean)/isFullScreen() 设置是否全屏
### win.setMenu(menu) 设置菜单
### win.setAutoHideMenuBar(boolean) 设置自动隐藏菜单栏,`alt` 键
切换
### win.setProgressBar(number); 开始栏图片的进度条
## 事件
### Event: 'closed'
当窗口已经关闭的时候触发.当你接收到这个事件的时候,你应当删除对已经关闭的窗口的引用对象和避免再次使用它.
### Event: 'unresponsive'
在界面卡死的时候触发事件.
### Event: 'responsive'
在界面恢复卡死的时候触发.
### Event: 'blur'
在窗口失去焦点的时候触发.
### Event: 'focus'
在窗口获得焦点的时候触发.
### Event: 'maximize'
在窗口最大化的时候触发.
';