Да, для этого вы можете использовать класс KeyboardDeliveryInterceptor .Несколько вещей, на которые следует обратить внимание:
- Вам необходимо объявить ограниченную возможность 'inputForegroundObservation' в файле appxmanifest:
<Capabilities>
<Capability Name="internetClient" />
<rescap:Capability xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" Name="inputForegroundObservation"/>
</Capabilities>
Вы не можете выборочно перехватывать клавиши, но вы можете реагировать на определенные перехваченные клавиши в вашем коде и отвечать желаемым действием (например, перемещать фокус при нажатии клавиши табуляции):
KeyboardDeliveryInterceptor interceptor = KeyboardDeliveryInterceptor.GetForCurrentView();
interceptor.IsInterceptionEnabledWhenInForeground = true;
interceptor.KeyUp += delegate(KeyboardDeliveryInterceptor sender, KeyEventArgs args)
{
if (args.VirtualKey == Windows.System.VirtualKey.Tab)
{
// perform desired tab key action
}
};