📅  最后修改于: 2023-12-03 15:14:51.491000             🧑  作者: Mango
在 ElectronJS 中,无框窗口可以用来创建更加自定义化的窗口。不同于有框窗口,无框窗口不具有标题栏和边框等元素,让你的窗口更加自由。
要创建一个无框窗口,你需要在 BrowserWindow 类中设置 frame
属性为 false。以下是创建无框窗口的示例代码:
const { app, BrowserWindow } = require('electron')
let mainWindow
function createWindow () {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
frame: false, // 设置为无框窗口
webPreferences: {
nodeIntegration: true
}
})
// 加载应用的首页
mainWindow.loadFile('index.html')
}
// 当 Electron 完成初始化并准备创建浏览器窗口时,调用 createWindow 函数
app.whenReady().then(() => {
createWindow()
app.on('activate', function () {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
// 当所有窗口都关闭时退出应用
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit()
})
无框窗口可以让你自定义窗口的样式和行为。以下示例演示如何通过 CSS 样式来自定义无框窗口:
/* 设置无框窗口的最小宽度和高度 */
body {
min-width: 400px;
min-height: 300px;
}
/* 完全覆盖窗口 */
#container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #333;
}
/* 添加自定义关闭按钮 */
.close-button {
position: absolute;
top: 10px;
right: 10px;
width: 20px;
height: 20px;
background-color: red;
border-radius: 50%;
}
然后在 HTML 中添加以下内容:
<body>
<div id="container">
<div class="close-button"></div>
<!-- 窗口内容 -->
</div>
</body>
无框窗口还可以通过设置 draggable
属性为 true 来让窗口接受拖拽事件。
// 让窗口可拖拽
const { BrowserWindow } = require('electron')
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
frame: false,
webPreferences: {
nodeIntegration: true
}
})
mainWindow.setMovable(true)
在 ElectronJS 中,无框窗口可以让你更加自由地创建自定义窗口。通过设置 frame
属性为 false,你可以创建无框窗口。接着,你可以通过 CSS 样式来自定义窗口的样式,或者设置 draggable
属性为 true 来让窗口接受拖拽事件。