5

PreviewKeyDown是否有相当于Windows Store App的?它不可用。

我有与这里描述的完全相同的问题

我有一个 ListBox,上面有一个 TextBox。我想使用箭头键从 ListBox 导航到 TextBox。目的是,如果 ListBox 中的第一项被选中,并且用户向上键,则 TextBox 将获得焦点。

4

1 回答 1

8

啊,棘手。处理关键事件并不是很明显。这就是你想要的:

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();
}

祝你好运!

于 2013-06-08T06:23:20.957 回答