テキスト ボックス コントロールの PreviewKeyDown イベントが、WPF アプリの Microsoft IME によってトリガーできない

注:

この記事で説明している問題は、Windows 10 Version 2004/20H2/21H1/21H2 のバグであり、解決する予定はありません。 ただし、Windows 11 では解決されています。 そのため、システムを Windows 11 にアップグレードすると、問題を回避できます。

この記事では、Windows Presentation Foundation (WPF) アプリケーションの一部の Microsoft 入力メソッド エディター (IME) によって TextBox コントロールの PreviewKeyDown イベントがトリガーされない問題について説明します。

適用対象: Windows Presentation Foundation、Windows 10 Version 2004、Windows 10 Version 20H2、Windows 10 Version 21H1、Windows 10 Version 21H2

現象

次のような状況で問題が発生します。

  1. Windows 10 Version 2004/20H2/21H1/21H2 で WPF アプリケーションを実行する。
  2. 東アジアの Microsoft IME を使用して、テキスト ボックス コントロールに入力する。

このシナリオでは、コントロールの PreviewKeyDown イベントはトリガーされません。 したがって、PreviewKeyDown イベント ハンドラーに依存するアプリケーションの一部の機能は、正常に機能しません。

原因

Microsoft IME は、Windows 10 の一部のバージョンで更新されています。 この問題は、最新の Microsoft IME の一部を使用している場合に発生します。

回避策

以前のバージョンの Microsoft IME に戻すには、[互換性] オプションをオンにします。 これを行うには、次の手順を実行します。

  1. タスク バーの検索ボックスに「言語設定」と入力し、結果のリストで [言語設定] を選択します。

    検索ボックスで言語設定を検索します。

  2. 言語の [オプション] を選択します。

    言語オプションを選択します。

  3. 言語オプション設定ページで、使用している IME の [オプション] を選択します。

    IME オプションを選択します。

  4. [全般] を選択します。

    [全般] を選択します。

  5. [以前のバージョンの <YourIME> を使用する] オプションをオンにし、開いたウィンドウで [OK] を選択します

    互換性モードをオンにし、IME バージョンの変更を確認します。