[WPF] x:Name 지정 없이 특정 컨트롤을 기본적으로 포커스된 상태로 설정하기
Focus 어떤 프로그램이든 사용자 경험은 중요한 부분입니다. 그중 개인적으로 기본이라고 생각하는 것이 바로 포커싱입니다. 윈도우가 부모 창의 가운데, 혹은 적절한 위치에서 팝업하는 것 부터 시작해서 핵심 컨트롤에 포커스가 맞춰지는 것까지. 사용자가 눈을 최대한 적게 굴리고, 마우스를 최대한 적게 움직이며, 키보드를 최대한 적게 입력하게 설계하는 것이 중요합니다. Focus 설정 은, 다들 아시겠지만 텍스트박스와 같이 커서가 옮겨갈 수 있는 컨트롤에 커서를 옮겨주는 역할 을 합니다. 예를 들어서 로그인 창이 있다고 생각해보죠. 로그인 창엔 아이디, 비밀번호, 아이디 저장, 비밀번호 저장, 로그인 등의 텍스트박스 및 체크박스, 버튼이 있을 겁니다. 그럼 사용자가 로그인 창에서 처음으로 볼 곳 은 어디일까요? 아이디 텍스트 박스 죠. 그럼 여러분은 로그인 창이 떴을 때, 아이디 텍스트 박스에 포커스가 설정 되도록 해야 합니다. 물론 대부분 바로 이해하시겠지만, 이렇게 설명하면 잘 이해가 되지 않으실 분을 위해 반대로 얘기해보죠. 만약 여러분이 네이버에 로그인 화면에 접속하려고 한다고 가정해봅시다. 네이버 메인 페이지에 들어가서, 로그인 버튼을 누릅니다. 그럼 로그인 페이지로 이동하게 됩니다. 헌데 여기서 만약 기본 포커싱이 ID 텍스트 박스가 아닌 패스워드 텍스트 박스로 되어있다면? 혹은 로그인 버튼으로 되어있다면? 전자의 경우 로그인 페이지로 넘어왔으니 당연히 아이디를 입력할 수 있을 것이라 생각하고 아이디를 honjasal...까지 입력하고 뭔가 이상함을 발견하게 될 것입니다. 패스워드에 입력되고 있었던 것이죠! 그럼 여러분은 깊은 빡침을 느끼며 패스워드를 지우고 Shift-Tab 혹은 마우스 클릭으로 아이디 텍스트박스를 선택하고 다시 입력할 겁니다. 후자의 경우 아예 입력조차 안 되죠. 뭐, 차라리 지우는 수고가 덜어지니 전자보단 나을지도? 아무튼, 이래서 사용자 경험이 중요하고, 포커싱이 중요합니다. 이번 포스트에서는