# Electron 窗口控制指南 ## 窗口功能 ### 基本控制 | 功能 | 操作 | |------|------| | 调整大小 | 拖动窗口边缘 | | 最小化 | 点击窗口右上角的 `-` 按钮 | | 最大化 | 点击窗口右上角的 `□` 按钮 | | 还原 | 再次点击最大化按钮 | | 关闭 | 点击窗口右上角的 `×` 按钮 | ### 快捷键 | 快捷键 | 功能 | |--------|------| | `F11` | 切换全屏模式 | | `Alt + F4` | 退出应用 | | `Alt + F4` (Mac) | `Cmd + Q` | ## 窗口配置 ### 当前设置 ```javascript { width: 1280, // 初始宽度 height: 720, // 初始高度 minWidth: 800, // 最小宽度 minHeight: 600, // 最小高度 resizable: true, // 允许调整大小 maximizable: true, // 允许最大化 minimizable: true, // 允许最小化 closable: true, // 允许关闭 autoHideMenuBar: false // 显示菜单栏 } ``` ### 自定义窗口大小 如果你想修改默认窗口大小,编辑 `electron/main.js`: ```javascript const win = new BrowserWindow({ width: 1920, // 修改为你想要的宽度 height: 1080, // 修改为你想要的高度 minWidth: 1024, // 修改为你想要的最小宽度 minHeight: 768, // 修改为你想要的最小高度 // ... 其他配置 }) ``` ### 启动时最大化 如果你希望应用启动时自动最大化,修改 `electron/main.js`: ```javascript const win = new BrowserWindow({ // ... 其他配置 }) // 在创建窗口后添加 win.maximize() ``` ### 启动时全屏 如果你希望应用启动时全屏,修改 `electron/main.js`: ```javascript const win = new BrowserWindow({ // ... 其他配置 fullscreen: true // 启用全屏 }) ``` ## 菜单栏 应用会显示 Electron 默认菜单栏,包含以下菜单: ### File 菜单 - **New Window** - 打开新窗口 - **Close** - 关闭当前窗口 - **Quit** - 退出应用 ### Edit 菜单 - **Undo** - 撤销 - **Redo** - 重做 - **Cut** - 剪切 - **Copy** - 复制 - **Paste** - 粘贴 - **Select All** - 全选 ### View 菜单 - **Reload** - 重新加载页面 - **Force Reload** - 强制重新加载 - **Toggle Developer Tools** - 切换开发者工具 - **Toggle Full Screen** - 切换全屏 - **Zoom In** - 放大 - **Zoom Out** - 缩小 - **Reset Zoom** - 重置缩放 ### Window 菜单 - **Minimize** - 最小化 - **Zoom** - 最大化/还原 - **Front** - 置顶 ## 隐藏菜单栏 如果你想隐藏菜单栏,修改 `electron/main.js`: ```javascript const win = new BrowserWindow({ // ... 其他配置 autoHideMenuBar: true // 隐藏菜单栏 }) ``` ## 自定义菜单栏 如果你想创建自定义菜单,在 `electron/main.js` 中添加: ```javascript const { Menu } = require('electron') const template = [ { label: '游戏', submenu: [ { label: '新游戏', click: () => { /* 新游戏逻辑 */ } }, { label: '继续游戏', click: () => { /* 继续游戏逻辑 */ } }, { type: 'separator' }, { label: '退出', click: () => app.quit() } ] }, { label: '设置', submenu: [ { label: '全屏', click: () => { win.setFullScreen(!win.isFullScreen()) } }, { label: '开发者工具', click: () => { win.webContents.toggleDevTools() } } ] } ] const menu = Menu.buildFromTemplate(template) Menu.setApplicationMenu(menu) ``` ## 窗口状态保存 如果你想记住窗口的大小和位置,可以使用以下代码: ```javascript const Store = require('electron-store') const store = new Store() app.whenReady().then(async () => { // 获取保存的窗口状态 const windowState = store.get('windowState', { width: 1280, height: 720, x: undefined, y: undefined }) const win = new BrowserWindow({ width: windowState.width, height: windowState.height, x: windowState.x, y: windowState.y, // ... 其他配置 }) // 保存窗口状态 win.on('close', () => { const bounds = win.getBounds() store.set('windowState', { width: bounds.width, height: bounds.height, x: bounds.x, y: bounds.y }) }) }) ``` ## 边框窗口 如果你想要无边框窗口,修改 `electron/main.js`: ```javascript const win = new BrowserWindow({ frame: false, // 无边框 transparent: true, // 透明背景 // ... 其他配置 }) ``` 注意:无边框窗口需要你自己实现窗口控制按钮。 ## 常见问题 ### Q: 如何在应用内切换全屏? A: 按 `F11` 键或通过菜单栏 `View` → `Toggle Full Screen` ### Q: 如何隐藏开发者工具? A: 删除 `electron/main.js` 中的 `win.webContents.openDevTools()` 行 ### Q: 如何设置应用图标? A: 在 `electron/main.js` 中设置 `icon` 选项 ### Q: 如何防止用户调整窗口大小? A: 设置 `resizable: false` ### Q: 如何设置窗口最小尺寸? A: 设置 `minWidth` 和 `minHeight` 选项 ## 性能建议 1. **合理的初始大小** - 设置合适的默认窗口大小 2. **最小尺寸限制** - 防止窗口过小导致内容无法显示 3. **响应式设计** - 确保应用在不同窗口尺寸下都能正常工作 4. **窗口状态保存** - 保存用户的首选窗口大小和位置 ## 总结 现在你的应用具有完整的窗口控制功能: - ✅ 可调整大小 - ✅ 可最小化 - ✅ 可最大化 - ✅ 可关闭 - ✅ 快捷键支持 - ✅ 菜单栏支持 用户可以根据自己的喜好自由调整窗口大小和全屏模式!