我可以让CefSharp WPF ChromiumWebBrowser接受IME输入吗?

时间:2015-01-16 07:49:42

标签: c# wpf cefsharp

我花了两个月的时间使用CefSharp嵌入式Chromium网络浏览器创建完美无瑕的WPF浏览器应用。现在有人透露,这个浏览器必须使用IME输入法,而不是。基本上,WPF浏览器在屏幕外呈现,屏幕图像和输入事件来回封送。

当调用IME时,文本输入发生在应用程序外部的弹出工具窗口中,通常位于桌面的左上角。一旦接受输入,输入就不会被封送回浏览器。

是否可以正常显示输入字段旁边的IME?

我很欣赏有关从何处开始阅读或编码的一些建议。如果这需要一个月的时间来实施,我相信它会发生。

更新 - 看起来像是OFFAuto和ImeProcessed键正在由WPF浏览器控件预览(但不会传递给屏幕外浏览器)。将这些密钥传递到屏幕外浏览器可防止出现IME窗口。我不确定这是否有进展。 :)

更新 - 我想我将推出自己的窗口消息循环来转发IME并将事件输入到浏览器。也许我可以让浏览器自己处理IME事件?

更新 - Windows上似乎没有实现屏幕外IME支持(仅限Mac) CEF3: Windows: Enable IME when Off Screen Rendering is enabled。我继续探索我的选择。

1 个答案:

答案 0 :(得分:0)

我把https://github.com/cefsharp/CefSharp/issues/583中讨论的一部分发布了一个快速的黑客...但是作为解决这个问题的正确位置真的是在CEF代码库中,我犹豫是否要添加hack the CefSharp代码库(我担心那些不需要IME支持的人会产生副作用。)

无论如何,我希望CefSharp问题#583有助于您找到解决方案 - 无论是通过短期黑客攻击 - 还是最好能够解决您已经挖出的CEF问题!