/ / Kann ich mit dem CefSharp WPF ChromiumWebBrowser IME-Eingaben akzeptieren? - c #, wpf, cefsharp

Kann ich den CefSharp WPF ChromiumWebBrowser dazu bringen, IME-Eingaben zu akzeptieren? - c #, wpf, cefsharp

Ich habe zwei Monate damit verbracht, eine makellose WPF - Browser - App mit der CefSharp eingebetteter Chromium-Webbrowser. Nun stellte sich heraus, dass dieser Browser mit IME-Eingabemethoden arbeiten muss, was jedoch nicht der Fall ist. Im Wesentlichen wird der WPF-Browser außerhalb des Bildschirms gerendert, wobei Bildschirmbilder und Eingabeereignisse vor und zurück gemarshallt werden.

Wenn der IME aufgerufen wird, erfolgt die Texteingabe in einPopup-Tool-Fenster außerhalb der App, normalerweise in der oberen linken Ecke des Desktops. Sobald die Eingabe akzeptiert wurde, wird die Eingabe nicht an den Browser zurückgemeldet.

Kann der IME wie üblich neben dem Eingabefeld erscheinen?

Ich würde mich über einige Hinweise freuen, wo ich anfangen soll zu lesen oder zu programmieren. Wenn die Implementierung einen Monat dauert, bin ich mir sicher, dass es passieren wird.

Update - Es sieht aus wie die Tasten OemAuto undImeProcessed wird von der WPF-Browsersteuerung in der Vorschau angezeigt (jedoch nicht an den Off-Screen-Browser übergeben). Wenn Sie diese Tasten an den Browser außerhalb des Bildschirms übergeben, wird das IME-Fenster nicht angezeigt. Ich bin nicht sicher, ob dies ein Fortschritt ist oder nicht. :)

Update - Ich denke, ich werde meine eigene Fenster-Nachrichtenschleife rollen, um IME- und Eingabeereignisse an den Browser weiterzuleiten. Vielleicht kann ich den Browser veranlassen, IME-Ereignisse selbst zu behandeln.

Update - Off-Screen-IME-Unterstützung scheint unter Windows (nur Mac) nicht implementiert zu sein. CEF3: Windows: Aktivieren Sie IME, wenn die Bildschirmwiedergabe aktiviert ist. Ich werde weiter meine Möglichkeiten ausloten.

Antworten:

0 für die Antwort № 1

Ich warf einen schnellen Hack zusammen, der im Rahmen der Diskussion in gepostet wurde https://github.com/cefsharp/CefSharp/issues/583 ... aber da dies der richtige Ort ist, um das zu beheben, liegt dies wirklich in der CEF-Codebase. Ich zögere, die CefSharp-Codebase zu hacken (ich habe Angst vor Nebenwirkungen für diejenigen, die keine IME-Unterstützung benötigen).

Ich hoffe jedoch, dass die CefSharp-Ausgabe Nr. 583 hilfreich ist, um Sie zu einer Lösung zu führen - entweder über den kurzfristigen Hack - oder vorzugsweise zur Lösung der CEF-Frage, die Sie bereits selbst ausgegraben haben!