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 에 내용이 있는지, 혹은 없는지를 판단하도록 한다.



+ Recent posts