禁用 UWP 应用与 Tab 键的交互
Disable interaction of UWP app with the Tab Key
我正在构建一个 UWP 应用程序。我希望我的应用程序根本不响应 Tab 键。我的意思是,只要用户按下 Tab 键,我的应用程序就应该完全忽略。
您可以在页面的 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 键,你可以通过两种方式实现:
创建自定义基页类型
您可以创建一个新的 class,例如 PageBase
,它将派生自 Page
,并将在其构造函数中设置 PreviewKeyDown
事件处理。您将在您的应用程序中拥有的所有其他页面都可以从 PageBase
.
派生
在根 Frame
上处理 Tab
您可以将 PreviewKeyDown
处理程序添加到 App.xaml.cs
中应用程序的根 Frame
控件:
rootFrame = new Frame();
rootFrame.PreviewKeyDown += RootFrame_PreviewKeyDown;
我正在构建一个 UWP 应用程序。我希望我的应用程序根本不响应 Tab 键。我的意思是,只要用户按下 Tab 键,我的应用程序就应该完全忽略。
您可以在页面的 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 键,你可以通过两种方式实现:
创建自定义基页类型
您可以创建一个新的 class,例如 PageBase
,它将派生自 Page
,并将在其构造函数中设置 PreviewKeyDown
事件处理。您将在您的应用程序中拥有的所有其他页面都可以从 PageBase
.
在根 Frame
上处理 Tab
您可以将 PreviewKeyDown
处理程序添加到 App.xaml.cs
中应用程序的根 Frame
控件:
rootFrame = new Frame();
rootFrame.PreviewKeyDown += RootFrame_PreviewKeyDown;