TextBox를 가지고 놀았는데...
Focus가 날 괴롭힌다...
우선 첫번째로...
hint? watermarker? 라고 해야 하나?
텍스트상자에 텍스트 입력하기 전에 여기에 뭘 적어야 한다~ 라고 알려주는 그 문구를 작성하고 싶었는데...
Win 8 App에서는 지원을 안해준단다....있나? 내가 못찾았나?
여튼...그래서 아래와 같은 방식으로 했다.
우선 이런 방법으로 TextBlock과 TextBox를 배치했다.
화면은
이렇다. 페이스북 로긴 화면 같은 거 한번 만들어보게...
위와 같이 xaml에 내용을 작성해주고 이벤트 처리를 해주어야 한다.
포커스가 없을 때 LostFocus 이벤트를 해주어야 하고
포커스가 있을 때 GotFocus 이벤트를 해주어야 한다.
해당 속성에 자기가 원하는 이벤트 메소드명을 작성해주면
cs 파일에 해당 이벤트 메소드가 생성되었을 것이다. 그때 아래와 같이 작성해주면 된다.
private void TB_email_LostFocus_1(object sender, RoutedEventArgs e) { TextBox tb = (TextBox)sender; if (string.IsNullOrEmpty(tb.Text)) { tb.Text = "Type here..."; } } private void TB_email_GotFocus_1(object sender, RoutedEventArgs e) { TextBox tb = (TextBox)sender; if (tb.Text.Equals("Type here...", StringComparison.OrdinalIgnoreCase)) { tb.Text = string.Empty; } //TB_email.Focus(FocusState.Unfocused); } private void TB_email_Loaded_1(object sender, RoutedEventArgs e) { TextBox tb = (TextBox)sender; if (string.IsNullOrEmpty(tb.Text)) { tb.Text = "Type here..."; } }
이렇게 작성해주면 당신이 원하는 Hint, watermarker 처럼 보일 수 있을 것이다.
근데... 여기서 문제가 하나 발생했던게... 실행하면 무조건 포커스가 e-mail TextBox로 가는데
이 포커스를 없애려고 막 찾아봤지만 성공하지 못했다..
찾으면 나도 좀 알려주세요~
아 어렵다...
'개발삽질방지 > Windows Store App' 카테고리의 다른 글
[Win 8 App] SolidColorBrush 객체 이용하여 원하는 대로 색 입히기. (0) | 2012.12.13 |
---|---|
[Win 8 App] 사용자 에이전트 문자열(User-Agent) (1) | 2012.12.04 |
[Win 8 App] 개발시 필요한 구문 정리(1) (0) | 2012.11.26 |
[Win 8 App] 윈도우 스토어 앱에서 메시지 띄우기 (MessageDialog) (1) | 2012.11.23 |
Windows 8 App Lifetime (1) | 2012.11.19 |