2015-10-30 32 views
1

我用CEFSharp 41.0.1 WinForms和有下一個問題:應用程序的背景(google.com被打開)輸背景,並開始透明的Windows 7從一開始直到在Windows 8上切換系統用戶時提供相同的行爲,直到聚焦應用。的WinForms與CEFSharp失去的背景,並開始透明

此外,對於Windows 8應用程序有時無法關注之後,你正試圖在谷歌輸入焦點,但通過應用程序到後臺應用程序。 這是我們的應用程序非常大的麻煩。

我現在不能顯示出Windows 7的情況下,讓我展示了Windows 8中的行爲與後更改系統用戶按Ctrl + Alt + Delete鍵 - >切換用戶

  1. 截圖爲Windows 8(切換用戶前): enter image description here

  2. 交換系統用戶後,截圖爲Windows 8(): enter image description here 對於這種情況是不可能的,因爲當你在applicati重點採取截圖它重新渲染並正確顯示。

我使用的瀏覽器創建對象並添加到窗體下面的代碼:

_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())); 

欣賞的任何想法。

+0

問題是否使用最新發行版本進行重現? ('43.0.1')。您可以使用'MinimalExample'項目進行測試https://github.com/cefsharp/CefSharp.MinimalExample – amaitland

+0

@amaitland,該問題已轉載最新版本,但WinForms的MinimalExample工作正常。我沒有看到我的項目和MinimalExample之間的巨大差異 – iamarsey

回答

0

解決的辦法是從WinForms中刪除TransparencyKey屬性。在我們的項目中,它被設置爲白色,瀏覽器中的白色背景內容在Windows 7中變得透明,但對於Windows 8而言,它無法正常工作,因此很難檢測到問題。