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

如何创建非可调整大小且占满屏幕(非全屏)的Electron BrowserWindow

实现Electron主窗口占满屏幕(非全屏)且不可调整大小

嗨,我来帮你搞定这个Electron窗口的需求!你想要的是让主窗口填满整个屏幕(保留窗口框架,不是那种隐藏标题栏的沉浸式全屏),同时禁止用户调整窗口大小,下面给你两种实用的实现方案:

方案一:通过屏幕尺寸精确设置窗口大小

这种方式会获取屏幕的可用工作区尺寸(排除任务栏/ dock等系统UI),直接把窗口大小设为这个尺寸,同时锁定不可调整:

const electron = require('electron');
const url = require('url');
const path = require('path');
const { app, BrowserWindow, screen } = electron; // 引入screen模块获取屏幕信息
let mainWindow;

app.on('ready', function(){
  // 获取主显示器的工作区尺寸(系统UI之外的可用区域)
  const { width, height } = screen.getPrimaryDisplay().workAreaSize;
  
  mainWindow = new BrowserWindow({
    resizable: false, // 禁止拖动调整窗口大小
    width: width,     // 窗口宽度匹配屏幕工作区宽度
    height: height,   // 窗口高度匹配屏幕工作区高度
    center: true      // 可选:让窗口默认居中显示
  });

  mainWindow.loadURL(url.format({
    pathname: path.join(__dirname,"index.html"),
    protocol: 'file',
    slashes:true
  }));

  mainWindow.on('closed',function(){
    app.quit();
  });
});

方案二:直接最大化窗口并锁定大小

这种方式更简洁,创建窗口后调用最大化方法,再锁定窗口不可调整,不需要额外获取屏幕尺寸:

const electron = require('electron');
const url = require('url');
const path = require('path');
const { app, BrowserWindow } = electron;
let mainWindow;

app.on('ready', function(){
  mainWindow = new BrowserWindow({
    resizable: false, // 提前锁定窗口不可调整
    width: 800,       // 基础尺寸(会被maximize覆盖,可随意设置)
    height: 600
  });

  // 让窗口最大化(填满屏幕,保留窗口标题栏和框架)
  mainWindow.maximize();

  mainWindow.loadURL(url.format({
    pathname: path.join(__dirname,"index.html"),
    protocol: 'file',
    slashes:true
  }));

  mainWindow.on('closed',function(){
    app.quit();
  });
});

注意事项

要区分开maximize()和setFullScreen(true):

  • maximize()是普通窗口最大化,会保留窗口的标题栏和系统任务栏,符合你要的"占满屏幕而非全屏状态"的需求
  • setFullScreen(true)是进入沉浸式全屏模式,会隐藏所有系统UI,这不是你想要的效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:52:18