我目前正在移出運行Awesomium而不是CefSharp的自助服務終端軟件。 我們主要的應用程序是用WPF和相比並排側的WindowsFormsHost主辦的WinForms的版本,這項工作是用CefSharp在WPF中託管的CefSharp WinForms瀏覽器WinFormsHost
我知道,WPF控件有一些嚴重的性能問題,的V45,轉換的平滑性等更好。
爲了達到這個目的,我正在使用這種將WPF窗口中的WinForms ChromiumWebBrowser嵌入到WindowsFormsHost中的方法。這一切工作,但我有問題獲得觸摸支持工作。 我們的信息終端具有觸摸屏並運行Windows 7/8.1,該觸摸可以完美地與WPF控件配合使用,但是當使用嵌入式WinForms時,單觸無法使用。 除了觸摸不工作以外,它還會竊取所有鍵盤事件並在內部使用它們,因爲我的事件處理程序在主WPF窗口上都沒有觸發。
如果任何人有任何想法或可以指向正確的方向來嘗試解決這個問題,將非常感激!
感謝
感謝您的回覆! 我已經嘗試過那些WPF性能改進,並且它們確實有一個效果,一個非常明顯的事實。問題是,當你隨後在WinFrame上自己測試或者在WPF中進行測試時,那裏的速度似乎再次突飛猛進。 我會看看是否可以獲得關於消息循環的各個部分,以及您的示例使用WPF,如果我有任何運氣,然後我會讓你知道。 – OpticFroggy
因此,在WinFormsHost中運行它,然後顯式調用DoMessageLoopWork()似乎解決了部分問題。這樣做可以使輸入事件在WPF圖層中啓動,所以我現在可以快速打開開發工具和其他特定應用程序。有什麼方法可以將這些事件中的一些事件作爲觸摸事件插入到CefSharp瀏覽器中?我能看到的唯一相關的方法是SendMouseWheelEvent。 – OpticFroggy
開箱即用,觸摸支持尚未在上游實施。見https://bitbucket.org/chromiumembedded/cef/issues/1059/cef3-multi-touch-support-with-offscreen和https://github.com/cefsharp/CefSharp/pull/1418 – amaitland