삽질의 현장/- .NET

#115_닷넷(.NET)_ WPF_ 키보드 입력

shovelman 2015. 12. 6. 16:25


안녕하세요 삽잡이입니다.


이번 시간에는 키보드 입력에 대해서 알아보려고합니다.


키보드는 마우스 포인터와 같이 

어느 윈도우를 타겟으로 하고 

이벤트를 받을 것인지에 대한 포커스가 없습니다.

따라서, 키보드에서는 논리적인 포커스와, 키보드 포커스라는 기능을 제공합니다.


키보드는 자원이고,

UI 요소 중 하나만이 키보드 입력을 받아들일 수 있습니다.

키보드 입력을 받아들일 수 있는

UI 요소를 표현하기 위해서 포커스라는 개념을 제공하게 되는 것이지요.

즉, 포커스를 가지고 있는 녀석만이 키모드 메시지를 받을 수 있게 됩니다.


키보드 포커스는,

실제로 지금 포커스를 받고 있는 녀석을 의미하고,

논리적인 포커스는,

이전에 포커스를 받고 있던 녀석을 의미합니다.


나눠논 이유가 있을까요?




절대로! 블로그 홍보가 아닙니다... 하하..

아무튼...

Google 검색 창에 입력을 하는데, 커서가 깜빡 거린다는 것은

해당 입력창이 포커스를 받고 있다는 의미입니다.


그런데, 만약 메뉴를 눌렀다면?

입력창의 포커스가 갈까요?

아닙니다. 메뉴에 포커스가 가겠지요.


그런데, 메뉴에 대한 작업이 끝나면 

다시 입력창에다가 포커스를 줘야하지 않겠습니까?

다시 포커스를 갖게 해주기 위해서 

논리적인 포커스를 가지고 있던 녀석에게 다시 포커스를 주는 것입니다.


마우스와 달리 키보드는 조금은 특수한 포커싱을 가지고 있군요.

어찌보면 당연한 것이지요...


이번 시간은 여기까지 하도록 하겠습니다.


이상 삽잡이였습니다!