2011-01-25 3 views
1

Silverlight 응용 프로그램에서 keyinput을 잡으려고하면 컨트롤의 초점 때문에 문제가 발생합니다. 페이지는 여러 컨트롤로 구성되어 있으므로 다른 컨트롤에 포커스가있을 때마다 내 KeyDownEvent가 일반적으로 실패합니다. 하나의 가능성은 내 모든 컨트롤에 대한 KeyDown 이벤트를 처리 한 다음이를 처리하는 메서드에 맡기는 것입니다. 더 좋은 방법이 있습니까?Silverlight에서 KeyInput 받기

답변

1

OnKeyDown을 재정 의하여 모든 컨트롤이 포함 된 페이지에서 KeyDown을 catch 할 수 있습니다.

protected override void OnKeyDown(KeyEventArgs e) 
{ 
    // Distribute to listeners from here 
} 

페이지의 컨트롤 위쪽 이벤트를 거품 때문에 작동 (텍스트 상자/버튼 등과 같은) 컨트롤이 부모 컨트롤이 기회를 얻는 키 입력을 처리하지 않는 경우 있도록.

+0

이것은 알 먼드에서 잘 작동합니다. 내가 실제로 입력하거나 단축키를 사용하고 있는지 확인하기 위해 컨트롤에 대한 secundary KeyDown 이벤트로 Boolean을 검사 할 수 있습니다. 감사! –

+0

서비스의 기쁜 소식! – Almund