2009-10-23 2 views
0

기본 단추 (IsDefault = "True")로 설정된 "로그인"단추가있는 로그인 창이 있습니다. 로그인 버튼은 기본 버튼이있는 새 창을 여는 것으로되어 있습니다.창로드시 기본 단추가 실행됩니다.

사용자가 Enter 키를 누르면 Sign In 버튼 클릭 이벤트가 발생하고 새 창이 열립니다. 그러나 어떤 이유로 새 창에서 기본 버튼에 대한 클릭 이벤트가 창이 열리 자마자 발생합니다.

사용자가 마우스 또는 탭으로 로그인 단추를 클릭하고 스페이스 바를 누르면이 동작은 관찰되지 않습니다.

왜 이런 일이 발생했는지 또는 어떻게 해결할 수 있는지에 대한 아이디어가 있습니까?

참고 : 새 창에서로드 된 이벤트 (xaml 대신)에서 IsDefault = true를 설정하려고했으나 도움이되지 않았습니다.

+0

어떻게 두 번째 창을 호출합니까? 코드를 게시 할 수 있습니까? –

답변

0

불행히도, 오해가있었습니다. 분명히 첫 번째 창은 IsDefault를 사용하지 않았습니다. 대신 창에서 KeyUp 이벤트가 Enter 키를보고있었습니다. 또한 eHandled는 설정되지 않았습니다. 이로 인해 두 번째 창에서 기본 단추가 첫 번째 창에서 Enter 키를 처리하도록했습니다.

0

내가 코드를보기 전까지는 왜 이런 일이 발생하는지 정확히 말할 수 없습니다. 작고 재현 가능한 예제를 만들 수 있습니까?

IsDefault/IsCancel 버튼 구현은 프레임 워크 (imho)에서 가장 직관적이지 않은 부분 인 AccessKeys 메커니즘을 기반으로합니다.

액세스 키 스코프 충돌이 발생하거나 반복 키 속도가 너무 높거나 Enter 키가 막혔을 수 있습니다. :)

Neil Mosafi's blog에서 액세스 키와 기본 버튼에 대해 자세히 읽을 수 있습니다. 누가 아십니까? 바로 AccessKeyScoper에서 대답을 찾을 수 있습니다.

관련 문제