Electron无边框窗口(最小化、最大化、关闭、拖动)

博客介绍了无边框窗口的创建方法,在BrowserWindow的options中将frame设置为 false 即可创建,还可通过设置 transparent 选项为 true 使窗口透明。此外,还提及了可拖拽区、最小化、最大化、关闭等操作,涉及渲染进程和主进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、无边框窗口

要创建无边框窗口,只需在BrowserWindow的options中将frame设置为 false,通过将 transparent 选项设置为 true, 还可以使无框窗口透明

mainWindow = new BrowserWindow({
  width: 800,
  height: 600,
  frame:false,
  transparent:true
})

二、可拖拽区

.titlebar {
  -webkit-app-region: drag;
  -webkit-user-select: none;
}

最小化,最大化,关闭

渲染进程
let ipcRenderer = require('electron').ipcRenderer;

var max = document.getElementById('max');
if (max) {
    max.addEventListener('click', () => {
        //发送最大化命令
        ipcRenderer.send('window-max');
        //最大化图形切换
        if (max.getAttribute('src') == 'images/max.png') {
            max.setAttribute('src', 'images/maxed.png');
        } else {
            max.setAttribute('src', 'images/max.png');
        }
    })
}

var min = document.getElementById('min');
if (min) {
    min.addEventListener('click', () => {
        //发送最小化命令
        ipcRenderer.send('window-min');
    })
}

var close = document.getElementById('close');
if (close) {
    close.addEventListener('click', () => {
        //发送关闭命令
        ipcRenderer.send('window-close');
    })
}

ipcRenderer.on('main-window-max', (event) => {
	max.classList.remove('icon-max');
	max.classList.add('icon-maxed');
});
ipcRenderer.on('main-window-unmax', (event) => {
	max.classList.remove('icon-maxed');
	max.classList.add('icon-max');
});

主进程
let ipcMain = require('electron').ipcMain;
//接收最小化命令
ipcMain.on('window-min', function() {
    mainWindow.minimize();
})
//接收最大化命令
ipcMain.on('window-max', function() {
    if (mainWindow.isMaximized()) {
        mainWindow.restore();
    } else {
        mainWindow.maximize();
    }
})
//接收关闭命令
ipcMain.on('window-close', function() {
    mainWindow.close();
})

//监听窗口的最大化操作,然后发送命令给渲染进程
mainWindow.on('maximize', function () {
 mainWindow.webContents.send('main-window-max');
})
mainWindow.on('unmaximize', function () {
  mainWindow.webContents.send('main-window-unmax');
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值