我花了两个月的时间使用CefSharp嵌入式 Chromium Web 浏览器创建了一个完美的 WPF 浏览器应用程序。现在发现该浏览器必须使用 IME 输入法,但它不能。本质上,WPF 浏览器是在屏幕外呈现的,屏幕图像和输入事件来回编组。
调用 IME 时,文本输入出现在应用程序外部的弹出工具窗口中,通常在桌面的左上角。一旦输入被接受,输入就不会被封送回浏览器。
是否可以让 IME 正常显示在输入字段旁边?
我会很感激一些关于从哪里开始阅读或编码的指示。如果这需要一个月的时间来实施,我相信它会发生。
更新 - 看起来 WPF 浏览器控件正在预览 OemAuto 和 ImeProcessed 键(但未传递到屏幕外浏览器)。将这些键传递给屏幕外浏览器可防止 IME 窗口出现。我不确定这是否是进步。:)
更新 - 我想我将推出自己的窗口消息循环来将 IME 和输入事件转发到浏览器。也许我可以让浏览器自己处理 IME 事件?
更新 - Windows(仅限 Mac)CEF3 上似乎没有实现屏幕外 IME 支持 :Windows:启用屏幕外渲染时启用 IME。我正在继续探索我的选择。