2013-05-20 69 views
5

是否有與PreviewKeyDown等效的Windows應用商店應用?它不可用。PreviewKeyDown for Windows應用商店應用列表框

我有完全的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