这样做非常简单。
首先你应该添加值PasswordChar
在您的密码框中:
<PasswordBox Name="PasswordHidden" PasswordChar="•"/>
接下来,在密码框标签下,您应该添加一个文本框Visibility
值设置为隐藏:
<TextBox Name="PasswordUnmask" Visibility="Hidden"/>
以及显示/隐藏密码的触发器,例如简单的文本或按钮。就我而言,我使用的是简单的文本。
<TextBlock Name="ShowPassword"/>
接下来,您需要在触发元素中添加 3 个不同的事件,例如(这对 TextBlock 或 Image 有效,如果您想使用 Button,则应该选择其他事件):
<TextBlock x:Name="ShowPassword" Text="SHOW" PreviewMouseDown="ShowPassword_PreviewMouseDown" PreviewMouseUp="ShowPassword_PreviewMouseUp" MouseLeave="ShowPassword_MouseLeave"/>
事件是PreviewMouseDown
PreviewMouseUp
and 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;
}