跳至主要内容

窗口自定义

Tauri 提供了许多选项来定制应用程序窗口的外观和感觉。您可以创建自定义标题栏、透明窗口、强制尺寸约束等等。

配置

有三种方法可以更改窗口配置

创建自定义标题栏

这些窗口功能的一个常见用途是创建自定义标题栏。本简短教程将指导您完成此过程。

CSS

您需要为标题栏添加一些 CSS,以将其保持在屏幕顶部并设置按钮样式。

.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

现在,您需要为标题栏添加 HTML。将其放在您的 `<body>` 标签的顶部。

<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>

请注意,您可能需要将其余内容向下移动,以防止标题栏将其覆盖。

JS

最后,您需要使按钮正常工作。

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

要使对 `appWindow` 的调用正常工作,请不要忘记在 `tauri.conf.json` 文件中添加 窗口 权限。

"tauri": {
"allowList": {
...
"window": {
"all": false,
"close": true,
"hide": true,
"show": true,
"maximize": true,
"minimize": true,
"unmaximize": true,
"unminimize": true,
"startDragging": true
}
}
...

"windows": [
{
"decorations": false,
...
}
]
}