【发布时间】:2012-02-27 17:06:54
【问题描述】:
我正在为 WPF 触摸应用程序开发屏幕数字键盘。这将出现在Popup 中。当一个按钮被按下时,它应该向应用程序发送一个击键,使它看起来好像用户正在输入一个TextBox。这是我的代码:
// 'key' is set beforehand
InputManager.Current.ProcessInput(new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, Environment.TickCount, key) { RoutedEvent = Control.KeyDownEvent });
这在Button.Click 事件处理程序中调用。
到目前为止,只有Key.Back 有效。数字键都不起作用,Key.Decimal 也不起作用。
编辑:我认为使用 SendKeys 可以解决问题,但它只是做同样的事情。
为什么我的数字按钮不起作用?我已经验证通过了正确的Key。
【问题讨论】:
-
数字键盘上的键可能与顶行不同。这是未经测试的评论 - 不是答案。
-
@BalamBalam:顶行和小键盘键都不能与代码一起使用。两者都可以在物理键盘上使用。
-
这听起来像是实现某事的迂回方式。您不能在第三方帮助类中实现所有按键功能并同时获取弹出键盘或键盘输入吗?
-
@Dr.AndrewBurnett-Thompson:我没有特殊的密钥处理。只是一个
TextBox。 -
好的,为什么不在弹出键上单击“TextBox.Text += newKeyCharacter”?如果弹出控件没有底层控件的引用来设置文本,则使用事件模式(如 .NET 事件或 EventAggregator)将数据从弹出控件获取到文本框