electron [Bug]: 窗口背景材质在最小化后无法工作

bxgwgixi  于 6个月前  发布在  Electron
关注(0)|答案(8)|浏览(67)

预检清单

Electron 版本

25.1.0

您正在使用的操作系统是什么?

Windows

您正在使用的操作系统版本是什么?

windows 11 22H2 - 22621

您正在使用的架构是什么?

x64

最后已知的工作 Electron 版本

  • 无响应*

预期行为

在使用以下设置的 BrowserWindow 时:

backgroundColor: '#00000000',
backgroundMaterial: "mica",
autoHideMenuBar: true,
frame: false,
resizable: false,
transparent: false,

在最小化窗口(使用 alt+tab 或其他方法)并再次显示它之后,我希望它能显示如下所示,带有mica背景材质。

实际行为

如果在最小化窗口后完全从屏幕上隐藏,那么当我再次显示它(通过单击任务栏中的它或使用 alt+tab)时,背景材质无法正确显示:

测试用例 Gist URL

https://gist.github.com/ttnn5876/78eacb07ec9b819e784d722e77e18eca

其他信息

  • 无响应*
iswrvxsc

iswrvxsc1#

这个问题已经被自动标记为过时。如果这个问题仍然影响到你,请留下任何评论(例如“提升”),我们会保持开放。如果你有任何新的附加信息——特别是,如果这个问题在 latest version of Electronbeta 中仍然可复现——请在你的评论中包含它!

eeq64g8w

eeq64g8w2#

您好,我了解您的问题。根据我的搜索结果,您可以尝试以下方法来解决这个问题:

  1. 您可以尝试在创建 BrowserWindow 时设置 transparent 属性为 true,如下所示:
const { BrowserWindow } = require('electron');
const win = new BrowserWindow({
  transparent: true,
});
  1. 如果上述方法不起作用,您可以尝试在窗口加载完成后设置背景颜色为透明。例如,您可以在窗口的 did-finish-load 事件中添加以下代码:
win.on('did-finish-load', () => {
  win.setBackgroundColor(0x000000); // 设置背景颜色为黑色
});
3mpgtkmj

3mpgtkmj3#

对于Mica窗口,ElectronDesktopWindowTreeHostWin::ShouldWindowContentsBeTransparent返回false的另一个副作用是,#40395的变化修复了这个问题。

w41d8nur

w41d8nur4#

这个问题已经被自动标记为过时。如果这个问题仍然影响到你,请留下任何评论(例如“提升”),我们会保持开放。如果你有任何新的附加信息——特别是,如果这个问题在 latest version of Electronbeta 中仍然可复现——请在你的评论中包含它!

ef1yzkbh

ef1yzkbh5#

bump - 尝试了在fiddler中使用electron 29.0.1的测试gist(在我制作应用程序时发现了这个问题),当尝试最大化和最小化窗口时,窗口会变黑。

siotufzp

siotufzp6#

相同的v29。Windows 11 x64
更新:通过订阅on maximize并用浅色/深色填充背景找到了一个解决方法。这个解决方案有点丑陋,但仍然比没有好。

5ktev3wc

5ktev3wc7#

在2024年3月15日星期五晚上7:01,Kirill Vasin ***@***.***写道:相同的v29。Windows 11 x64 — 直接回复此电子邮件,查看GitHub上的<#38743 (comment)>,或取消订阅< https://github.com/notifications/unsubscribe-auth/BDJG33IBF7DDVPOKZYFIARTYYL5K5AVCNFSM6AAAAAAZDJ2UE2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJZG4ZDEMRZGA >。您收到此邮件是因为您订阅了此线程。消息ID: ***@***.***>

相关问题