禁用 UWP 应用与 Tab 键的交互

Disable interaction of UWP app with the Tab Key

我正在构建一个 UWP 应用程序。我希望我的应用程序根本不响应 Tab 键。我的意思是,只要用户按下 Tab 键,我的应用程序就应该完全忽略。

您可以在页面的 PreviewKeyDown 事件中处理 Tab 键:

public MainPage()
{
    this.InitializeComponent();
    this.PreviewKeyDown += MainPage_PreviewKeyDown;
}

private void MainPage_PreviewKeyDown(object sender, KeyRoutedEventArgs e)
{
    if (e.Key == VirtualKey.Tab)
    {
        e.Handled = true;
    }
}

但是,我反对这样做,因为这会删除您的应用的可访问性的一个重要部分 - 许多用户喜欢或需要使用键盘进行导航。

应用程序范围的解决方案

如果你想在整个应用程序范围内处理 Tab 键,你可以通过两种方式实现:

创建自定义基页类型

您可以创建一个新的 class,例如 PageBase,它将派生自 Page,并将在其构造函数中设置 PreviewKeyDown 事件处理。您将在您的应用程序中拥有的所有其他页面都可以从 PageBase.

派生

在根 Frame

上处理 Tab

您可以将 PreviewKeyDown 处理程序添加到 App.xaml.cs 中应用程序的根 Frame 控件:

rootFrame = new Frame();
rootFrame.PreviewKeyDown += RootFrame_PreviewKeyDown;