我的应用程序是全屏游戏的覆盖层(alwaysOnTop),当用户单击我的覆盖层时,它会获得焦点并在游戏顶部显示任务栏。获得焦点很好,但我无法显示任务栏。
不是无法聚焦的工具箱窗口
暗示可以创建一个无法聚焦的窗口。
有谁知道如何创建工具箱窗口,或者只是避免在单击电子窗口时显示任务栏?
我应该提到我已经尝试过
setAlwaysOnTop
和skipTaskbar
。我还有transparent: true
和frame: false
。
我创建的叠加层是“Safelane、Midlane、Offlane”按钮。当我运行该应用程序时,它显示在全屏应用程序 (Dota 2) 的顶部,如下所示:
点击界面后会出现任务栏。如果全屏应用程序(Dota)失去焦点,任务栏出现在顶部,这会破坏体验的连续性:
我希望体验保持像第一张图片一样——当用户单击叠加层中的任何内容时,任务栏不应显示。
其他解决方案信息——使用下面的 Gaafar 解决方案后
在设置中设置kiosk: true
似乎不允许它呈现透明。窗口打开后在
setKiosk(true)
内使用
setTimeout
似乎有效。我还发现任何使用
kiosk
或
fullscreen
且具有透明度的窗口都存在渲染问题。它会在自身之上渲染多次,并且无法取消渲染项目(css 中的 display: none 不会执行任何操作)。我解决这个问题的方法是使用Electron Window Manager 创建一个没有任何内容的
kiosk
窗口,并使用 HTML / CSS 界面创建其他非信息亭窗口。结果:
所以我将其发布在这里,以便遇到类似问题的人可以获得帮助。
当全屏任务栏妨碍时。当您使用 mainWindow.setFullScreen(true) 全屏显示时,当您在家中(所有窗口最小化)时,任务栏会妨碍窗口。
解决方案如下:
ipcMain.on("fullscreenon",()=>{
mainWindow.setAlwaysOnTop(true, 'screen-saver');
mainWindow.setFullScreen(true);
})
//The order of the commands is important below
//don't setAlwaysOnTop() before getting out of fullscreen.
ipcMain.on("fullscreenoff",()=>{
mainWindow.setFullScreen(false);
mainWindow.setAlwaysOnTop(true, 'floating')
})
基本上,默认情况下 setFullscreen 使用级别:“浮动”。我们需要更高的水平,“屏幕保护”是我认为的最高水平。
我遇到了和你一样的问题。我尝试了很多方法但无法解决,直到我搜索“
https://github.com/electron/ Electron/issues/22907”。
根据''22097'中'caminin'先生的回复,在定义主窗口时添加'"thickFrame:false"即可。
mainWindow = new BrowserWindow({
...
thickFrame: false, //Thanks to Mr. caminin
...
});
我测试成功了,希望你也能成功。