【发布时间】:2010-11-18 18:42:18
【问题描述】:
因此,我使用了第三方 wpf 网格控件,该控件经过硬编码,仅接受某些击键来执行快捷反应,其中之一是 Shift-Tab。 但是,我的用户群习惯于按向上箭头和向下箭头并告诉他们“不”现在不是一个选项。所以我认为我唯一的选择是拦截预览键并发送不同的击键组合。
现在,我正在使用我在此处找到的以下代码在用户按下向下箭头时发送选项卡:
if (e.Key == Key.Down)
{
e.Handled = true;
KeyEventArgs eInsertBack = new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0, Key.Tab);
eInsertBack.RoutedEvent = UIElement.KeyDownEvent;
InputManager.Current.ProcessInput(eInsertBack);
}
但是,此方法的局限性在于您似乎无法模拟按下 Shift 按钮? WPF 似乎认为 Keyboard.Modifiers 能够“读取”Shift 或 Ctrl,但似乎没有任何工具可以以编程方式设置 Keyboard.Modifiers。有什么帮助吗?
【问题讨论】:
标签: c# wpf keyboard wpf-controls keyboard-shortcuts