禁用UWP应用与Tab键的交互

时间:2019-02-16 08:46:24

标签: c# windows uwp win-universal-app windows-10-universal

我正在构建UWP应用。我希望我的应用程序完全不响应 Tab 键。我的意思是,每当用户按下 Tab 键时,我的应用都应该完全忽略。

1 个答案:

答案 0 :(得分:2)

您可以在页面的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 密钥,可以通过两种方式进行操作:

创建自定义基本页面类型

您可以创建一个类似PageBase的新类,该类将从Page派生,并在其构造函数中设置PreviewKeyDown事件处理。然后,您在应用程序中拥有的所有其他页面都可以从PageBase派生。

在根Frame上处理 Tab

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

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