在 C# 中以编程方式生成按键事件
以编程方式生成模拟键盘按下的事件是各种场景(例如自动化测试)中的一项关键任务和用户界面模拟。本文探讨了如何在 C# 中实现此功能,特别是在 WPF 框架中。
WPF 应用程序的解决方案
WPF 应用程序的一个简单方法是利用 KeyEventArgs类和目标元素上的 RaiseEvent 方法。以下是向当前焦点元素发送 Insert 键 KeyDown 事件的示例:
var key = Key.Insert; // Key to send var target = Keyboard.FocusedElement; // Target element var routedEvent = Keyboard.KeyDownEvent; // Event to send target.RaiseEvent( new KeyEventArgs( Keyboard.PrimaryDevice, PresentationSource.FromVisual(target), 0, key) { RoutedEvent=routedEvent } );
此解决方案消除了对本机调用或操作 Windows 内部结构的需要,从而确保了可靠性。此外,它还允许在特定元素上精确模拟按键。
TextInput 事件
对于发送 TextInput 事件,代码有所不同稍微:
var text = "Hello"; var target = Keyboard.FocusedElement; var routedEvent = TextCompositionManager.TextInputEvent; target.RaiseEvent( new TextCompositionEventArgs( InputManager.Current.PrimaryKeyboardDevice, new TextComposition(InputManager.Current, target, text)) { RoutedEvent = routedEvent } );
注意事项:
以上是如何在 C# WPF 应用程序中以编程方式生成按键事件?的详细内容。更多信息请关注PHP中文网其他相关文章!