无需按键盘上的键即可触发键盘按键事件

rid*_*doy 8 c# wpf keyboard-events

如何在不按键盘键的情况下触发按键事件?我试过这里的解决方案,但我得到以下异常:

'System.Windows.PresentationSource.FromVisual(System.Windows.Media.Visual)'的最佳重载方法匹配具有一些无效参数.

考虑Shift+A包含键盘上的2键按键事件,如何在不按键盘的情况下执行此操作?(让我们只需在按钮单击的文本框中打印大写字母A)

我的代码

var key = Key.A;                    // Key to send
var target = Keyboard.FocusedElement;    // Target element
var routedEvent = Keyboard.KeyDownEvent; // Event to send

target.RaiseEvent(new System.Windows.Input.KeyEventArgs(Keyboard.PrimaryDevice, System.Windows.PresentationSource.FromVisual(target), 0, key) { RoutedEvent = routedEvent });
Run Code Online (Sandbox Code Playgroud)

rid*_*doy 11

System.Windows.Forms.SendKeys.Send() 为我做了诀窍.

有关高级说明和可用代码列表,请参阅该方法的文档.

例如,发送Shift+ A我用过SendKeys.Send("+(a)").