由于控件的重点,尝试在Silverlight应用程序中捕获keyinput会给我带来问题。该页面由多个控件组成,因此每当一个不同的控件具有焦点时,我的KeyDownEvent通常会失败。 一种可能性是将KeyDown事件分配给我的所有控件,然后分配给处理它们的方法。还有更好的方法吗?
答案 0 :(得分:1)
您可以通过覆盖OnKeyDown来捕获包含所有控件的页面中的KeyDown。
protected override void OnKeyDown(KeyEventArgs e)
{
// Distribute to listeners from here
}
这是有效的,因为页面上的控件向上冒泡事件,因此如果控件(如文本框/按钮等)不处理按键,则父控件有机会。