Да, можно. Делается потомок от стандартного Input или от InputBase (если разметка своя нужна и чтобы не плодить перезапись оригинальной), реализуется стандартный механизм работы поля пароля (поля PasswordChar, SecurePassword и замена вводимого символа на символ из PasswordChar), в нем вешается обработчик на изменение поля, а уже там и проверяется сам пароль и далее выставляется поле HintVisibility (через флаг неудобно будет в XAML) и HintType (обычный enum - опять же в XAML удобнее сразу привязываться к конкретному значению). Соответственно в разметке шаблона просто используете этот класс вместо стандартного и привязываете к этим двум полям видимость самой подсказки и её текст через определение её типа. Почему надо делать именно так: потому что сам пароль хранится в поле типа SecureString и необходимо расшифровывать строку и не сохранять ещё куда-то в расшифрованном виде (а через биндинги нельзя, да и не безопасно, даже если бы можно было). Все остальные варианты - костыли, от которых все равно в итоге придешь к наследованию от базового класса.