如何从弹出控件中捕获键盘输入

时间:2011-01-25 21:08:50

标签: wpf popup keyboard-events

我希望从Popup控件接收键盘输入,该控件充当触摸屏键盘控件的根视觉效果。我希望控件支持键盘输入和触摸屏输入。我挂钩事件(PreviewKeyDown和KeyDown),它们永远不会被触发。

1 个答案:

答案 0 :(得分:1)

默认情况下,Popup不可聚焦,即使它是可聚焦的,您也必须在弹出窗口上关注其他内容,然后将其聚焦或给予焦点以使其接收键盘事件。

换句话说,如果你想要Popup使用Focusable="True"的键盘事件,并设置一个可调焦的控件,如TextBoxButton或{{1}然后让用户通过点击它或者从代码手动使用ListBox给它焦点。如果您执行了所有这些操作,则应Focus()触发PreviewKeyDown

这是一个带有切换按钮的小型演示程序,可以打开Popup,只要我们在Popup上收到PreviewKeyDown事件,就会显示一个滑块增加:

Popup