【问题标题】:Disable interaction of UWP app with the Tab Key禁用 UWP 应用与 Tab 键的交互
【发布时间】:2019-07-10 07:23:45
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    您可以在页面的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

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

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

    【讨论】:

    • 这可以在应用层面实现吗?
    • 如何禁用(临时)键,例如:win 键、ctr+alt+delete、alt+F4?
    • 我不确定这实际上是否可行,因为这些是系统范围的快捷方式,很遗憾
    猜你喜欢
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    相关资源
    最近更新 更多