You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Electron设置frame:false后,如何仅隐藏默认标题栏保留菜单栏?

在Electron中仅隐藏Windows默认标题栏并保留菜单栏的方法

你用frame: false的问题在于,这个配置会直接移除整个窗口的原生框架——包括标题栏和菜单栏的容器,所以菜单栏跟着消失很正常。要只隐藏标题栏但保留菜单栏,试试下面两种方案:

方案1:用titleBarStyle快速实现(Electron 7+支持)

保留原生窗口框架,仅隐藏标题栏,菜单栏会自动留在顶部:

mainWindow = new BrowserWindow({
  frame: true, // 必须保留框架,不然菜单栏没地方放置
  titleBarStyle: 'hidden', // 隐藏原生标题栏
  menuBarVisible: true // 明确指定菜单栏可见,避免不同环境下的差异
});

这种方式下,Windows系统的窗口控制按钮(最大化、最小化、关闭)会消失,如果需要保留这些按钮,推荐用下面的方案2。

方案2:用titleBarOverlay自定义样式(Electron 14+推荐)

这个配置专门针对Windows平台,既能隐藏原生标题栏,又能保留系统风格的控制按钮,还能自定义匹配App主题的样式:

mainWindow = new BrowserWindow({
  frame: true,
  titleBarOverlay: {
    color: '#2f3241', // 标题栏覆盖区域的背景色,可匹配你的App主题
    symbolColor: '#74b1be' // 控制按钮的图标颜色
  },
  menuBarVisible: true
});

设置后,菜单栏会正常显示在窗口顶部,控制按钮会以半透明覆盖层的形式出现在右上角,样式可以根据需求灵活调整。

另外要注意:如果你的菜单栏是自定义创建的,记得提前用Menu.setApplicationMenu(menu)把菜单栏挂载到窗口上,不然即使配置正确也看不到菜单栏。

内容的提问来源于stack exchange,提问作者blaze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 01:12:36