我试图KeyDown
在CoreWindow
. 经测试,Pivot
接收到键盘事件比事件更早CoreWindow.KeyDown
,所以可以尝试禁用对应的键盘加速器Pivot
:
private void Pivot_ProcessKeyboardAccelerators(UIElement sender, ProcessKeyboardAcceleratorEventArgs args)
{
if(args.Key==Windows.System.VirtualKey.Tab && args.Modifiers == Windows.System.VirtualKeyModifiers.Control)
{
args.Handled = true;
}
}
通过监听Pivot.ProcessKeyboardAccelerators
事件,我们可以防止触发Ctrl
+时的默认行为( args.Handled = True)。Tab
不过需要注意的是,因为阻止了事件进一步冒泡,所以CoreWindow.KeyDown
此时仍然不会触发事件。
您在问题描述中提到您使用单例来处理由快捷方式触发的事件。然后你需要在代码中的单例中直接调用你的处理方法。
...
args.Handled = true;
CtrlAndTabHandle();
谢谢。