在UserControl中捕获Esc键

Ask*_*uch 2 c# xaml uwp

我想创建一个Custom Popup使用UserControl,因为这是UWP应用程序,我想Popup在用户按下ESC键盘时隐藏.

我尝试覆盖OnKeyDown方法,UserControl但是当我按下ESC键盘时,这个方法从未执行过.

 protected override void OnKeyDown(KeyRoutedEventArgs e)
 {
    if (e.Key == VirtualKey.Escape)
    {
       this.Visibility = Visibility.Colapse;
    }
 }
Run Code Online (Sandbox Code Playgroud)

Fra*_*SFT 5

我想在用户按下键盘上的ESC时隐藏Popup.

在UWP应用程序中,请考虑使用CoreWindow.CharacterReceived事件

在UserControl中,在Constructor方法中添加事件处理程序:

public CustomPopupControl()
{
            this.InitializeComponent();

            Window.Current.CoreWindow.CharacterReceived += CoreWindow_CharacterReceived;
}

private void CoreWindow_CharacterReceived(CoreWindow sender, CharacterReceivedEventArgs args)
{
            if(args.KeyCode==27) //ESC
            {
        //Do somthing
                this.Visibility = Visibility.Collapsed;
            }
}
Run Code Online (Sandbox Code Playgroud)