« [P7]クラスライブラリ(DLL)作成にあたって、XAMLを使う方法(Visual Studio 2008 IDE) | トップページ | [P9]WPF:どうコンテナコントロールを使ったらいいものか?--私の一つの解 MyUIDesigner -- »

[P8]WPF 体制下において、ImeMode を切り替える方法

Windows の描画機構が、GDI から WPF(Windows Presentation Foundation)に変わったのに伴い、IME モードの切り替え方(半角・全角の切り替え方)が変わりました。
GDI 下では、TextBox などの入力コントロールのプロパティ ImeMode で切り替えましたが、 WPF 下ではコントロールから独立した一個のクラス( InputMethod クラス )になっております。

[C#]
using System.Windows.Input;

InputMethod.Current.ImeState = InputMethodState.On;
InputMethod.Current.ImeState = InputMethodState.Off;

これだけで、切り替わります。いづれ、当たり前のことになるのでしょうが、移行時には戸惑います。

なお、特に入力時の瞬間での切り替えを厳密にしたければ、

   private void textBox1_GotFocus(object sender, RoutedEventArgs e)
   {
   }

などの当該コントロールの何らかのイベントハンドラー内に、上記コードを書けばよいでしょうが、そういう手間をかける必要がない場合もあると思います。

便宜のため、以下に整理しておきます。

[ InputMethod クラス ]

名前空間: System.Windows.Input
アセンブリ: PresentationCore (presentationcore.dll 内)

MSDN ライブラリ内の該当URL
http://msdn2.microsoft.com/ja-jp/library/system.windows.input.inputmethod.aspx

[ InputMethodState 列挙体 ]

メンバ   { DoNotCare, Off, On }

名前空間・アセンブリ ・・・・同上

MSDN ライブラリ内の該当URL
http://msdn2.microsoft.com/ja-jp/library/system.windows.input.inputmethodstate.aspx

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
目次に戻る ・・・・ 左欄のカテゴリー 【パソコンの窓】 をクリック
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

|

« [P7]クラスライブラリ(DLL)作成にあたって、XAMLを使う方法(Visual Studio 2008 IDE) | トップページ | [P9]WPF:どうコンテナコントロールを使ったらいいものか?--私の一つの解 MyUIDesigner -- »

コメント

コメントを書く



(ウェブ上には掲載しません)




« [P7]クラスライブラリ(DLL)作成にあたって、XAMLを使う方法(Visual Studio 2008 IDE) | トップページ | [P9]WPF:どうコンテナコントロールを使ったらいいものか?--私の一つの解 MyUIDesigner -- »