728x90
TextBox 에 워터마크를 삽입하는 것은 이 전의 글에서 이야기했었고,
동일한 방법으로 스타일을 만들어 Key와 TargetType 만 변경하여 PasswordBox에 적용하려 했으나 에러가 발생했다.
이유는 PasswordBox 에는 'Text' 속성이 없고 이 대신 'Password' 속성이 있지만 이 속성은 의존속성(Dependency Property) 가 아니기 때문에 트리거로 사용할 수 없다.
다시 TextBox의 예로 돌아와서 Trigger 부분을 살펴보자.
4번째 줄에 보면 'Text' 속성이 "" 일 때에 대한 조건이 있는데
해당 TextBox가 focus 되지 않고, 또한 내용이 입력되지 않았을 때 워터마크를 보여주도록 지정한다.
하지만 PasswordBox 에서는 이 'Text' 속성이 없고, 'Password' 속성이 의존속성이 아니기 때문에 다음의 사이트를 참조하여 구현한다.
http://stackoverflow.com/questions/1607066/wpf-watermark-passwordbox-from-watermark-textbox
방법은 PasswordBoxMonitor 라는 의존객체를 만들어 Password 속성을 모니터링하고, 변경되었을 시 자체적으로 만든 'PasswordLength' 라는 속성을 통해 해당 PasswordBox 에 내용이 있는지, 혹은 없는지를 판단하도록 한다.
'Dev > WPF' 카테고리의 다른 글
[WPF] Zoom In/Out & Rotate (줌인/줌아웃 & 회전) (2) | 2012.08.21 |
---|---|
[WPF] Custom ContentControl (컨텐트컨트롤 커스텀화) (0) | 2012.08.07 |
[WPF] Textbox Watermark(hint) ( 텍스트박스에 힌트 넣기) (0) | 2012.07.31 |
[WPF] ScrollViewer Tips (스크롤뷰어 Tips) - 1. IsDeferredScrollingEnabled (0) | 2012.07.31 |