防止键盘标签位于加载控件后面

时间:2018-09-14 08:58:44

标签: uwp windows-community-toolkit

我正在使用Windows Community ToolKit Loading控件。我设置了Background="Transparent"以防止指针点击加载控件后面的UI元素,但是仍然可以使用键盘标签将焦点设置到控件后面的UI控件。是否有一种简单/优雅的方法来防止将键盘选项卡插入此类后置控件中。

  • 我可以在面板/容器控件上使用IsEnabled,但是我不喜欢禁用元素的样式,也不想针对IsEnabled重新设置所有控件的样式演示文稿。

  • 我尝试过IsTabStop,但是随后我需要将面板/容器包装到usercontrol/contentcontrol中,并且IsTabStop不会继承给孩子。我不想在加载叠加层后面的所有控件上都设置IsTabStop

我已经搜索了一些与焦点相关的属性的信息,但是找不到我可以使用的任何东西。

希望有人对我的问题有一个聪明的解决方案

1 个答案:

答案 0 :(得分:0)

根据您的要求,您可以处理PreviewKeyDown当前内容,然后确定 Tab 按键设置e.Handled = true

Window.Current.Content.PreviewKeyDown += Content_PreviewKeyDown;

private void Content_PreviewKeyDown(object sender, KeyRoutedEventArgs e)
{        
    e.Handled = e.Key == VirtualKey.Tab ? true : false;
}

上面的代码将忽略当前内容中按下的 Tab