禁用 UWP 应用与 Tab 键的交互
Posted
技术标签:
【中文标题】禁用 UWP 应用与 Tab 键的交互【英文标题】:Disable interaction of UWP app with the Tab Key 【发布时间】:2019-07-10 07:23:45 【问题描述】:我正在构建一个 UWP 应用。我希望我的应用程序根本不响应 Tab 键。我的意思是每当用户按下 Tab 键时,我的应用程序都应该完全忽略。
【问题讨论】:
【参考方案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? 我不确定这实际上是否可行,因为这些是系统范围的快捷方式,很遗憾以上是关于禁用 UWP 应用与 Tab 键的交互的主要内容,如果未能解决你的问题,请参考以下文章