Ars*_*yan 20 wpf keyboard-input
我想在整个我的WPF应用程序中将Enter键解释为Tab键,也就是说,当我的应用程序中的任何地方用户按Enter时我想要聚焦下一个可聚焦控件,除非按钮被聚焦.在应用程序生命周期中有没有办法做到这一点?谁能举个例子?
非常感谢!
Mat*_*ton 37
如果您愿意,可以使用我的EnterKeyTraversal附加属性代码.将它添加到WPF窗口的顶级容器中,内部的所有内容都将输入为tab:
<StackPanel my:EnterKeyTraversal.IsEnabled="True">
...
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
根据 Richard Aguirre 的答案,它比所选答案的易用性更好,恕我直言,您可以通过简单地将 Grid 更改为 UIElement 来使其更通用。
要在整个项目中更改它,您需要执行此操作
在 App.xaml.cs 中:
protected override void OnStartup(StartupEventArgs e)
{
EventManager.RegisterClassHandler(typeof(UIElement), UIElement.PreviewKeyDownEvent, new KeyEventHandler(Grid_PreviewKeyDown));
base.OnStartup(e);
}
private void Grid_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
var uie = e.OriginalSource as UIElement;
if (e.Key == Key.Enter)
{
e.Handled = true;
uie.MoveFocus(
new TraversalRequest(
FocusNavigationDirection.Next));
}
}
Run Code Online (Sandbox Code Playgroud)
编译。并做到了。现在您可以使用类似选项卡的输入。注意:这适用于网格中的元素
归档时间: |
|
查看次数: |
12475 次 |
最近记录: |