【问题标题】:ElectronJS no shadoow when window is transparent窗口透明时ElectronJS没有阴影
【发布时间】:2020-06-15 20:37:18
【问题描述】:

我是 ElectronJs 的新手,我终于想出了如何获得圆角。

但是,现在我开始工作了,我注意到我失去了窗户上的阴影,为什么

您可以在下面找到电子特定代码的整个 main.js 文件。

const electron = require("electron");
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;

const path = require("path");
const isDev = require("electron-is-dev");

let mainWindow;

function createWindow() {
  mainWindow = new BrowserWindow({
    width: 900,
    height: 680,
    frame: false,
    transparent: true,
    hasShadow: true
  });
  mainWindow.loadURL(
    isDev
      ? "http://localhost:3000"
      : `file://${path.join(__dirname, "../build/index.html")}`
  );
  if (isDev) {
    // Open the DevTools.
    //BrowserWindow.addDevToolsExtension('<location to your react chrome extension>');
    mainWindow.webContents.openDevTools();
  }
  mainWindow.on("closed", () => (mainWindow = null));
}

app.on("ready", () => {
  createWindow();
});

app.on("window-all-closed", () => {
  if (process.platform !== "darwin") {
    app.quit();
  }
});

app.on("activate", () => {
  if (mainWindow === null) {
    createWindow();
  }
});

});

【问题讨论】:

  • 阴影应该来自弹窗,我们可以看看你弹窗的代码吗?
  • @SydneyY 添加到 OP

标签: css reactjs electron


【解决方案1】:

因此,根据他们的文档,这是 ElectronJS 的一个已知限制,这是因为您设置了“transparent = true”:

“在 Mac 上,原生窗口阴影不会显示在透明窗口上。”

https://www.electronjs.org/docs/api/frameless-window#limitations

【讨论】:

  • 但这是在 Windows 10 上
  • 我知道他们没有在文档中这么说,我在这里做出有根据的猜测,但“透明”部分似乎就是这样,所以窗口实际上是全尺寸的因此不会投下阴影。而且您创建的内部窗口不能在透明的东西上投下阴影。这似乎还不是一个很棒的功能。
猜你喜欢
  • 2020-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多