如何在wpf c#中按TAB键时触发事件
本文关键字:事件 TAB 中按 wpf | 更新日期: 2023-09-27 18:14:41
当我按Tab或shift+ Tab键的消息显示,但我想要显示这个消息只有当我按Tab键而不是shift+ Tab键。如何在Wpf c#中使用previewkeydown事件按Tab键时才定义此事件?
private void txtH_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Tab)
{
MessageBox.Show("Tab");
}
}
您可以执行如下检查
if ((!e.KeyboardDevice.IsKeyDown(Key.LeftShift))
&& (!e.KeyboardDevice.IsKeyDown(Key.RightShift))
&& e.KeyboardDevice.IsKeyDown(Key.Tab))
或者你可以像
这样检查if (!(e.KeyboardDevice.Modifiers == ModifierKeys.Shift)
&& e.KeyboardDevice.IsKeyDown(Key.Tab))
WPF不适合用于事件驱动的方式,比如Winforms。最好将MVVM模式与命令结合使用,以分离表示和业务逻辑关注点——这是WPF最强大的地方。
当你这样做的时候,你可以在你的视图的XAML文件中定义InputBinding
派生的XAML元素,并指定一个Command
运行使用Command
属性,这是在你的ViewModel
。
<KeyBinding Command="{Binding ShowMessageCommand}" Key="Tab" />
<KeyBinding Command="{Binding ShowMessageCommand}" Modifiers="Shift" Key="Tab" />