我正在尝试使用屏幕上的按钮来执行 Tab 和 reverse Tab 的功能。我希望该应用程序使用这些其他按钮在“细分”按钮之间切换,然后用户能够使用 Enter 键选择一个。试图使程序完全可通过键盘导航。
我曾尝试使用 KeyDown 事件,然后使用定向焦点导航,但我更希望让系统模拟 Tab 键按下以跟随 Tab 路径。
这是我一直在尝试解决的代码,但它并不是我想要的功能。
private void Grid_KeyDown(object sender, KeyRoutedEventArgs e)
{
DependencyObject candidate = null;
var options = new FindNextElementOptions()
{
SearchRoot = WeldPGrid,
XYFocusNavigationStrategyOverride = XYFocusNavigationStrategyOverride.Projection
};
switch (e.Key)
{
case Windows.System.VirtualKey.Up:
candidate =
FocusManager.FindNextElement(
FocusNavigationDirection.Up, options);
break;
case Windows.System.VirtualKey.Down:
candidate =
FocusManager.FindNextElement(
FocusNavigationDirection.Down, options);
break;
case Windows.System.VirtualKey.Left:
candidate = FocusManager.FindNextElement(
FocusNavigationDirection.Left, options);
break;
case Windows.System.VirtualKey.Right:
candidate =
FocusManager.FindNextElement(
FocusNavigationDirection.Right, options);
break;
}
// Also consider whether candidate is a Hyperlink, WebView, or TextBlock.
if (candidate != null && candidate is Control)
{
(candidate as Control).Focus(FocusState.Keyboard);
}
}
作为最终结果,我希望将模拟的 Tab 按下放在侧面按钮的单击事件或命令中,而不仅仅是使用方向键。对此问题的任何帮助将不胜感激!
jeck猫
临摹微笑
相关分类