禁用UWP应用与Tab键的交互

问题描述 投票:0回答:1

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

c# windows uwp win-universal-app windows-10-universal
1个回答
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键,可以通过两种方式实现:

Create a custom base page type

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

Handling Tab on root Frame

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

rootFrame = new Frame();
rootFrame.PreviewKeyDown += RootFrame_PreviewKeyDown;
© www.soinside.com 2019 - 2024. All rights reserved.