본문 바로가기

개발삽질방지/Windows Store App

[Win 8 App] TextBox 가지고 놀았는데...

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로 가는데


이 포커스를 없애려고 막 찾아봤지만 성공하지 못했다..


찾으면 나도 좀 알려주세요~


아 어렵다...