Enterキーを押したときに何らかの処理を行いたい

ソフトウェアキーボードのEnterキーをタップしたときに、何らかの処理を行いたいことは多々あるのではないでしょうか。

例えば、検索画面の場合だとEnterキーで検索や、入力項目の多い画面では次のコントロールへフォーカスを移動させるのは要望としては定番です。今回はそのトリガーとなるソフトウェアキーボードのEnterキーが押されたイベント拾い方についてご紹介します。

xamlのKeyDownイベントハンドラを定義します。

<TextBox x:Name="textBx" KeyDown="textWord_KeyDown" InputScope="Search"/>

コードビハインドでKeyDownイベントハンドラを書きます。e.Keyの値がKey.Enterの場合に、なんらかの処理をさせるようにします。

private void textBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) 
{
	if (e.Key.Equals(Key.Enter)) {
        	// ここでなんらかの処理
	}
}

InputScopeをSearchにしている場合、右下に

エンターキーでソフトウェア・キーボードを閉じる

private void textBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) 
{
	if (e.Key.Equals(Key.Enter)) 
	{
        	// 別のコントロールのFocusメソッドを呼ぶことで
        	// ソフトウェア・キーボードを非表示にする
        	this.Focus();
	}
}