0

CefSharp組み込み Chromium Web ブラウザーを使用して、真っ白な WPF ブラウザー アプリを作成するのに 2 か月を費やしました。現在、このブラウザは IME 入力方式で動作する必要があることが明らかになりましたが、そうではありません。基本的に、WPF ブラウザーはオフスクリーンでレンダリングされ、画面イメージと入力イベントが前後にマーシャリングされます。

IME が呼び出されると、アプリの外側にあるポップアップ ツール ウィンドウ (通常はデスクトップの左上隅) にテキスト入力が行われます。入力が受け入れられると、入力はブラウザにマーシャリングされません。

通常どおり、入力フィールドの横に IME を表示させることはできますか?

読書やコーディングを開始する場所について、いくつかの指針をいただければ幸いです。これを実装するのに1か月かかる場合は、確実に実現します。

更新 - キー OemAuto および ImeProcessed が WPF ブラウザー コントロールによってプレビューされているようです (ただし、オフスクリーン ブラウザーには渡されません)。これらのキーをオフスクリーン ブラウザーに渡すと、IME ウィンドウが表示されなくなります。これが進歩かどうかはわかりません。:)

更新 - 独自のウィンドウ メッセージ ループをロールバックして、IME および入力イベントをブラウザーに転送しようと考えています。ブラウザーが独自に IME イベントを処理できるようにすることはできますか?

更新 - オフスクリーン IME のサポートが Windows に実装されていないようです (Mac のみ) CEF3: Windows: オフスクリーン レンダリングが有効な場合に IME を有効にします。私は自分の選択肢を模索し続けています。

4

1 に答える 1

0

https://github.com/cefsharp/CefSharp/issues/583での議論の一部として投稿された簡単なハックをまとめました...しかし、これを解決する適切な場所はCEFコードベースであるため、躊躇していますハックを CefSharp コードベースに追加します (IME サポートを必要としない人にとっては副作用が心配です)。

とにかく、CefSharp の問題 #583 が、短期的なハックを介して解決策を導き出すのに役立つことを願っています。または、できれば、すでに自分で掘り下げた CEF 問題の解決につながることを願っています!

于 2015-01-19T17:43:59.193 に答える