没有半径的电子窗角?

时间:2018-05-30 09:08:39

标签: javascript css electron

我有一个带有这些属性的电子窗口:

mainWindow = new BrowserWindow({
  width: 800,
  height: 600,
  title: "Aqua",
  frame: false,
  transparent: true,
  show: false,
  fullscreenable: false,
  webPreferences: {
    plugins: true
  }
})

当我开始它时,一切正常。但是因为我的标题栏只在悬停时显示,所以我在顶部有一个丑陋的边缘,在底部有一个圆形边缘。我现在希望我的所有角都有0px半径。根据互联网上的其他资源,当窗口无框且透明时,它应自动为0px半径。这对我不起作用。如何在整个窗口上使我的边缘锐利而没有半径?

如果您需要我的代码,here是我的CSS,here我的main.js和here我的HTML。

2 个答案:

答案 0 :(得分:0)

好的,所以我找到了一个简单的小解决方法:

void Next_btn(object sender, RoutedEventArgs e)
{
    this.NavigationService.Navigated += NavigationService_Navigated;

    if (this.NavigationService.CanGoForward)
        this.NavigationService.GoForward();
    else
        NavigationService.Navigate(new Page2());
}

private void NavigationService_Navigated(object sender, NavigationEventArgs e)
{
    var page2 = NavigationService.Content as Page2;
    if (page2 != null && someVar == 3)
        page2.DoSomething();

    this.NavigationService.Navigated -= NavigationService_Navigated;
}

这是hacky但是我找到的唯一方法。如果你有更好的方法,请让我知道!

你可能不应该使用它。它可能会弄乱一切!

更好的解决方案:只需在BrowserWindow的创建中设置一个活力和透明的真实,你的窗口就会有硬边。其他一切都需要对铬有深入的了解......

答案 1 :(得分:0)

热点新闻! (至少在我写这篇文章的那天)。

这将作为一个名为 BrowserWindow 的新 roundedCorners 选项出现在 Electron v13 中,可以通过将其设置为 false 来禁用。检查昨天刚刚合并的 this pull request

您可以通过安装每晚版本的 Electron 来测试此功能:

npm i electron@npm:electron-nightly