【发布时间】:2019-07-10 07:23:45
【问题描述】:
我正在构建一个 UWP 应用。我希望我的应用程序根本不响应 Tab 键。我的意思是每当用户按下 Tab 键时,我的应用程序都应该完全忽略。
【问题讨论】:
标签: c# windows uwp win-universal-app windows-10-universal
我正在构建一个 UWP 应用。我希望我的应用程序根本不响应 Tab 键。我的意思是每当用户按下 Tab 键时,我的应用程序都应该完全忽略。
【问题讨论】:
标签: c# windows uwp win-universal-app windows-10-universal
您可以在页面的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;
【讨论】: