跳至主要內容

自訂視窗樣式

無邊框視窗

Frameless Window

無邊框視窗會移除作業系統所套用的所有外觀,包括視窗控制項。

若要建立無邊框視窗,請在 BrowserWindow 建構函式中將BaseWindowContructorOptions frame 參數設定為 false

const { app, BrowserWindow } = require('electron')

function createWindow () {
const win = new BrowserWindow({
width: 300,
height: 200,
frame: false
})
win.loadURL('https://example.com')
}

app.whenReady().then(() => {
createWindow()
})

透明視窗

Transparent Window Transparent Window in macOS Mission Control

若要建立完全透明的視窗,請在 BrowserWindow 建構函式中將BaseWindowContructorOptions transparent 參數設定為 true

下列 Fiddle 利用透明視窗和 CSS 樣式來建立圓形視窗的錯覺。

const { app, BrowserWindow } = require('electron')

function createWindow () {
const win = new BrowserWindow({
width: 100,
height: 100,
resizable: false,
frame: false,
transparent: true
})
win.loadFile('index.html')
}

app.whenReady().then(() => {
createWindow()
})

限制

  • 您無法點擊透明區域。詳細資訊請參閱 #1335
  • 透明視窗無法調整大小。將 resizable 設定為 true 可能會導致透明視窗在某些平台上停止運作。
  • CSS blur() 篩選器僅適用於視窗的網頁內容,因此無法將模糊效果套用至視窗下方的內容(即使用者系統上開啟的其他應用程式)。
  • 當開發人員工具開啟時,視窗不會透明。
  • Windows
    • 當 DWM 停用時,透明視窗將無法運作。
    • 透明視窗無法使用 Windows 系統選單或雙擊標題列來最大化。此背後的理由可以在 PR #28207 中看到。
  • macOS
    • 原生視窗陰影不會顯示在透明視窗上。