Windows 8、Windows 8.1 におけるタッチ キーボードと IME に関する制限事項
こんにちは、Visual Studio サポートチームです。
今回は、Windows 8、Windows 8.1 におけるタッチ キーボードと IME に関する制限事項についてご紹介します。
弊社 OS 標準 IME である Microsoft IME (以降、MS IME) 以外にも様々なサードパーティ製の IME がありますね。用途に応じて、MS IME とサード パーティ製 IME とを、使い分けている方も多いのではないでしょうか。
実は、タッチ キーボードと IME の組み合わせによっては、予期せぬ入力動作となる場合があります。現時点では、下記二つの動作を確認しています。
1. WPF アプリケーションにおいて、英数字キー以外の入力が IME に通知されない
2. Shift キーのダブル クリックによる Shift ロックができない
これらの現象はサード パーティ製の IME を使用しているときに発生し、MS IME を使用しているときは発生しません。
それぞれの現象についてご説明します。
--------------------------------------------------------------------------------------
1. WPF アプリケーション上において、英数字キー以外の入力が IME に通知されない
--------------------------------------------------------------------------------------
WPF アプリケーション上で、タッチ キーボードから長音や句読点等の英数字キー以外を入力した場合、IME へキー入力が伝わりません。
このため、正しい予測変換候補が表示されないなどの現象が発生します。
たとえば、WPF アプリケーション上で "―、。?" と入力した場合、以下のようになります。
MS IME では予測変換候補が表示されていますが、サード パーティ製の IME では予測変換候補が表示されず、確定文字列として表示されます。
この現象は、WPF とタッチ キーボードにおける制限です。
しかし、どうしても利用したいというアプリケーションは、WPF のコントロールの代わりに Win32 のコントロールをご検討ください。
以下のチュートリアルがご参考になります。
チュートリアル: WPF での Win32 コントロールのホスト
https://msdn.microsoft.com/ja-jp/library/ms752055.aspx
-------------------------------------------------------------
2. Shift キーのダブル クリックによる Shift ロックができない
-------------------------------------------------------------
タッチ キーボードの Shift キー (↑) をダブル クリックしても、Shift オン モードにロックすることができません。
大文字を入力するたびに、Shift キーを押下する必要がありますので、ご注意ください。
2014 年 12 月追記
なお、本現象については、Shift ロックに対応するよう修正が行われましたので、以下の KB3013769 を適用してください。
※対象は、Windows 8.1 のみとなりますので、ご注意ください。
December 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2
https://support.microsoft.com/kb/3013769
また、Shift ロックに関する以下の技術情報が公開されましたので、ご案内します。
You cannot toggle Caps Lock by double-tapping the Shift button in a third-party IME in Windows 8.1 or Windows RT 8.1
https://support.microsoft.com/kb/3011954