我们有一个带有两个列表和一个文本框的用户控件。我们的产品管理部门要求用户可以输入文本,而不考虑当前的焦点。另外,一些按键(上,下,左,右,返回,移动和控制)应由列表框处理,以进行导航和多重选择。
我为PreviewKeyDown
添加了事件处理程序。在项目之间以及列表和文本框之间导航正常。但是我没有找到任何有用的提示来提示如何将键事件委托给文本框。
我尝试使用RaiseEvent
方法:
this.NameTextBox.RaiseEvent(
new KeyEventArgs(Keyboard.PrimaryDevice,
PresentationSource.FromVisual(target),
0,
key)
{ RoutedEvent=Keyboard.PreviousKeyDownEvent});
PreviousKeyDownEvent
被触发但未处理。 RaiseEvent
对于除Back键之外的所有键均返回false
。
我也试图获取钥匙的角色。但这对于德语键盘上的“é”等组合键不是有用的解决方案,因为它需要两个键。
我猜想RaiseEvent
是解决方案,但是我不知道如何“告诉”文本框来处理事件。
有什么主意吗?