参考:
https://tauri.app/v1/guides/features/window-customization/
https://tauri.app/v1/api/config#windowconfig
创建css(测试可以写在index.html里)
.titlebar {
height: 30px;
background: #329ea3;
user-select: none;
display: flex;
justify-content: flex-end;
position: fixed;
top: 0;
left: 0;
right: 0;
}
.titlebar-button {
display: inline-flex;
justify-content: center;
align-items: center;
width: 30px;
height: 30px;
}
.titlebar-button:hover {
background: #5bbec3;
}
添加标题栏的html结构(index.html)
<div data-tauri-drag-region class="titlebar">
<div class="titlebar-button" id="titlebar-minimize">
<img
src="https://api.iconify.design/mdi:window-minimize.svg"
alt="minimize"
/>
</div>
<div class="titlebar-button" id="titlebar-maximize">
<img
src="https://api.iconify.design/mdi:window-maximize.svg"
alt="maximize"
/>
</div>
<div class="titlebar-button" id="titlebar-close">
<img src="https://api.iconify.design/mdi:close.svg" alt="close" />
</div>
</div>
绑定事件(main.tsx)
import { appWindow } from '@tauri-apps/api/window'
document
.getElementById('titlebar-minimize')
?.addEventListener('click', () => appWindow.minimize())
document
.getElementById('titlebar-maximize')
?.addEventListener('click', () => appWindow.toggleMaximize())
document
.getElementById('titlebar-close')
?.addEventListener('click', () => appWindow.close())
tauri.conf.json
"allowlist": {
...
"window": {
"all": false,
"close": true,
"hide": true,
"show": true,
"maximize": true,
"minimize": true,
"unmaximize": true,
"unminimize": true,
"startDragging": true
}
},
"windows": [
{
"fullscreen": false,
"resizable": true,
"title": "bible-study-tool-app",
"width": 800,
"height": 600,
"decorations": false
}
]
透明背景(如果使用圆角窗口)
tauri.conf.json 编辑 windows
下的 transparent
设为 true
,macOS要把 tauri 下的 macOSPrivateApi
设置成 true
"windows": [
{
...
"transparent": true
}
],
"macOSPrivateApi": true
并且把 html 元素设置为透明
<html lang="en" data-theme="light" style="background-color: rgba(0, 0, 0, 0)">