はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

inputscopename namevalue="Search"でのGoキーの判定

関連:[WindowsPhone]Keyboard Input Scope

Windows PhoneのSIP(ソフトウェアキーボード)でIEのURL欄のようにGoキー([→]キー)を表示させたいときは次のようにTextBoxを指定します。

<textbox grid.row="0" x:name="Search_TextBox">
<textbox.inputscope>
<inputscope>
<inputscopename namevalue="Search" />
</inputscope>
</textbox.inputscope>
</TextBox>

image


このときGoキーによる専用イベントは発生しません。


Goキーがタップされたときに検索を開始したいときは次のようなコードが必要です。


まずはXAML側の定義として次のようにKeyDownイベントハンドラーを定義します。

<TextBox x:Name="Search_TextBox" Grid.Row="0" 
KeyDown="Search_TextBox_KeyDown">
<TextBox.InputScope>
<InputScope>
<InputScopeName NameValue="Search"/>
</InputScope>
</TextBox.InputScope>
</TextBox>

これに対応したイベントプロシージャは次のようになります。

Private Sub Search_TextBox_KeyDown(sender As System.Object,
e As System.Windows.Input.KeyEventArgs)
If e.Key = Key.Enter AndAlso Me.Search_TextBox.Text.Trim.Length > 0 Then
MainViewModel.AppSearchViewModel.GetDataAsync(Me.Search_TextBox.Text.Trim)
End If
End Sub