Marko97IT
Это очень просто сделать.
Во-первых, вы должны добавить PasswordChar значение в ваш, безусловно, самый простой:
<PasswordBox Name="PasswordHidden" PasswordChar="*"/>
Далее под тегом PasswordBox вы должны добавить текстовое поле со значением `Visibility`, установленным в Hidden:
<TextBox Name="PasswordUnmask" Visibility="Hidden"/>
И триггер для отображения / скрытия пароля, например простой текст или кнопка. В моем случае я использую простой текст.
<TextBlock Name="ShowPassword"/>
Далее вам нужно добавить 3 различных события в триггерный элемент, например (это допустимо для текстового блока или изображения, если вы хотите использовать кнопку, Вы должны выбрать другие события):
<TextBlock x:Name="ShowPassword" Text="SHOW" PreviewMouseDown="ShowPassword_PreviewMouseDown" PreviewMouseUp="ShowPassword_PreviewMouseUp" MouseLeave="ShowPassword_MouseLeave"/>
Эти события называются "PreviewMouseDown", "PreviewMouseUp" и "MouseLeave", но вы можете выбрать подходящее событие для вашей ситуации.
Теперь в вашем коде вам нужно запрограммировать функции:
private void ShowPassword_PreviewMouseDown(object sender, MouseButtonEventArgs e) => ShowPasswordFunction();
private void ShowPassword_PreviewMouseUp(object sender, MouseButtonEventArgs e) => HidePasswordFunction();
private void ShowPassword_MouseLeave(object sender, MouseEventArgs e) => HidePasswordFunction();
private void ShowPasswordFunction()
{
ShowPassword.Text = "HIDE";
PasswordUnmask.Visibility = Visibility.Visible;
PasswordHidden.Visibility = Visibility.Hidden;
PasswordUnmask.Text = PasswordHidden.Password;
}
private void HidePasswordFunction()
{
ShowPassword.Text = "SHOW";
PasswordUnmask.Visibility = Visibility.Hidden;
PasswordHidden.Visibility = Visibility.Visible;
}