質問: ### 前提・実現したいこと WPFのRichTextboxの入力中/変換中文字色を設定したい ### 発生している問題・エラーメッセージ WPFのRichTextboxにIME変換中の文字色を設定することが出来ず困っております。 旧システムでは、MFCのRichEditに対してEM_SETIMECOLORを使用して各種色を設定していました。 WPFのRichTextboxでも同様の色制御は可能でしょうか? ### 該当のソースコード ### 試したこと 旧システムと同様EM_SETIMECOLORによる色指定では設定が行えませんでした。 ### 補足情報(FW/ツールのバージョンなど) .NetFramework4.61 VisualStudio2017
回答: PreviewKeyDown を見てください。 IME が ON になると Key = ImeProcessed, ImeProcessKey = ImeConvert の EventArgs が送られてきます。また OFF になると Key = ImeProcessed, ImeProcessKey = ImeNonConvert です。 追記 == 質問を読み間違えました。 WPF の RichTextBox は Windows の RICHEDIT ではないので Windows のメッセージとは無関係です。 TextCompositionManager.AddPreviewTextInputStartHandler で IME 変換前のイベントをフックできます。また TextCompositionManager.AddPreviewTextInputUpdateHandler で変換中文字列が変わった時のイベントをフックできます。 これを利用し、FlowDocument を書き換えることで色を変えてください。