littlewing

人間とコンピューターとメディアの接点をデザインするために考えたこと

UWPのTextBoxでEnterキーでVirtual keyboardを閉じる

UWPの2DビューでIPアドレスなど一行だけ入力したときにEnterで、キーボードを閉じるには自前で以下のような実装をしないといけません。

こんな感じ

hoge.xaml

  • XAML側でKeyDownイベントを取得する
  • この場合は自作のOnKeyDownHandlerを呼び出しています
<TextBox x:Name="hoge" KeyDown="OnKeyDownHandler" HorizontalAlignment="Left" Margin="166,112,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="189" InputScope="AlphanumericHalfWidth"  />

hoge.xaml.cs

  • OnKeyDownHandlerでEnterを検知してキーボードを閉じる
  • using Windows.System;が必要です。
private void OnKeyDownHandler(object sender, KeyRoutedEventArgs e)
{
        if (e.Key == VirtualKey.Enter)
        {
                Windows.UI.ViewManagement.InputPane.GetForCurrentView().TryHide();
        }
}