使用CEFSharp的WinForms失去背景并开始透明

时间:2015-10-30 09:10:26

标签: winforms cefsharp

我在CEFSharp 41.0.1中使用WinForms并遇到下一个问题:应用程序的背景(google.com已打开)丢失背景并从开始到结束从Windows 7开始透明在Windows 8上切换系统用户直到关注应用程序时提供相同的行为。

此外,对于Windows 8,应用程序有时无法将重点放在之后,您正试图将注意力集中在谷歌的输入上,而是通过应用程序进入后台应用程序。 这对我们的应用来说非常麻烦。

我现在无法显示Windows 7的情况,所以我在Ctrl + Alt + Delete - >之后显示了更改系统用户的Windows 8的行为。切换用户

  1. Windows 8的屏幕截图(切换用户之前): enter image description here

  2. Windows 8的屏幕截图(切换系统用户后): enter image description here 对于那种情况是不可能截取屏幕截图,因为每当你专注于应用程序时,它都会重新渲染并正确显示。

  3. 我使用下一代码创建浏览器对象并添加到表单中:

    _browser = new ChromiumWebBrowser("google.com")
            {
                Dock = DockStyle.Fill,              
                MenuHandler = new CustomMenuHandler(),
                BrowserSettings = new BrowserSettings()
                {
                    ApplicationCacheDisabled = false,
                    FileAccessFromFileUrlsAllowed = true,
                    JavascriptDisabled = false,
                    LocalStorageDisabled = false,
                    WebSecurityDisabled = true,
                    JavaScriptOpenWindowsDisabled = false,
                    JavascriptDomPasteDisabled = false,
                }
            };
            RegisterWrappers();
            Controls.Add(_browser);
    

    和下一个初始化代码:

    Cef.Initialize(new CefSettings()
                {
                    CachePath = "cache"
                   });
    
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
    
                Application.Run(new Context(new Form1()));
    

    欣赏任何想法。

1 个答案:

答案 0 :(得分:0)

解决方法是从WinForms中删除TransparencyKey属性。在我们的项目中,它被设置为Windows中的白色和白色背景内容在Windows 7中变得透明,但对于Windows 8,它无法正常工作,因此很难检测到问题。