CefSharp組み込み Chromium Web ブラウザーを使用して、真っ白な WPF ブラウザー アプリを作成するのに 2 か月を費やしました。現在、このブラウザは IME 入力方式で動作する必要があることが明らかになりましたが、そうではありません。基本的に、WPF ブラウザーはオフスクリーンでレンダリングされ、画面イメージと入力イベントが前後にマーシャリングされます。
IME が呼び出されると、アプリの外側にあるポップアップ ツール ウィンドウ (通常はデスクトップの左上隅) にテキスト入力が行われます。入力が受け入れられると、入力はブラウザにマーシャリングされません。
通常どおり、入力フィールドの横に IME を表示させることはできますか?
読書やコーディングを開始する場所について、いくつかの指針をいただければ幸いです。これを実装するのに1か月かかる場合は、確実に実現します。
更新 - キー OemAuto および ImeProcessed が WPF ブラウザー コントロールによってプレビューされているようです (ただし、オフスクリーン ブラウザーには渡されません)。これらのキーをオフスクリーン ブラウザーに渡すと、IME ウィンドウが表示されなくなります。これが進歩かどうかはわかりません。:)
更新 - 独自のウィンドウ メッセージ ループをロールバックして、IME および入力イベントをブラウザーに転送しようと考えています。ブラウザーが独自に IME イベントを処理できるようにすることはできますか?
更新 - オフスクリーン IME のサポートが Windows に実装されていないようです (Mac のみ) CEF3: Windows: オフスクリーン レンダリングが有効な場合に IME を有効にします。私は自分の選択肢を模索し続けています。