2013-05-20 14 views
5

のWindowsストアアプリケーションにはPreviewKeyDownと同等のものがありますか?それは利用できません。PreviewKeyDown for Windows Store App ListBox

は、私はそれ以上のテキストボックスとリストボックスを持っているdescribed here:

とまったく同じ問題を抱えています。 ListBoxからTextBoxに移動するために矢印キーを使用したいと思います。 ListBox内の最初のアイテムが選択され、ユーザーがキーを押した場合、TextBoxはフォーカスを取得することを意図しています。

+0

上記のリンクされた問題はWPF用であるため、これは重複した質問ではありません。 –

+0

WPFの質問にも同じ問題があります。 –

+0

正解をマークするのは丁寧です。 –

答えて

7

ああ、トリッキーです。キーイベントの処理は、はっきりとしたものではありません。ここにあなたが欲しいものがあります:

public MainPage() 
{ 
    this.InitializeComponent(); 
    Window.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated += (s, args) => 
    { 
     if ((args.EventType == CoreAcceleratorKeyEventType.SystemKeyDown 
      || args.EventType == CoreAcceleratorKeyEventType.KeyDown) 
      && (args.VirtualKey == VirtualKey.Up)) 
     { 
      MoveUp(); 
     } 
     else if ((args.EventType == CoreAcceleratorKeyEventType.SystemKeyDown 
      || args.EventType == CoreAcceleratorKeyEventType.KeyDown) 
      && (args.VirtualKey == VirtualKey.Down)) 
     { 
      MoveDown(); 
     } 
    }; 
} 

private void MoveUp() 
{ 
    // this part is up to you 
    throw new NotImplementedException(); 
} 

private void MoveDown() 
{ 
    // this part is up to you 
    throw new NotImplementedException(); 
} 

最高の幸運!

+0

これは本当にいいです。 AcceleratorKeyActivatedイベントは、どのコントロールがフォーカスにあっても、キーが押されるたびにトリガーされます。リストにフォーカスがあるかどうかを確認するにはどうすればよいですか?私は新しい質問を作成しました:https://stackoverflow.com/questions/25248486/check-if-listview-has-focus – PEK