在密码箱的某些事件上显示密码字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在密码箱的某些事件上显示密码字符相关的知识,希望对你有一定的参考价值。
我正在开发一个Windows Phone应用程序。我要求用户登录。
在登录页面上,用户必须输入密码。
现在我想要的是,我给用户一个复选框,选中后应该显示密码的字符。
我没有在密码框上看到任何显示密码字符的属性。
请建议一些方法来做到这一点。
不要认为使用PasswordBox是可能的......只是想一想,但是你可以使用隐藏的TextBox完成相同的结果,当用户点击CheckBox时,你只需隐藏PasswordBox并显示TextBox;如果他再次点击,你再次切换他们的可见性状态,依此类推......
编辑
这是怎么回事!
只需添加一个页面,将ContentPanel更改为StackPanel并添加此XAML代码:
<PasswordBox x:Name="MyPasswordBox" Password="{Binding Text, Mode=TwoWay, ElementName=MyTextBox}"/>
<TextBox x:Name="MyTextBox" Text="{Binding Password, Mode=TwoWay, ElementName=MyPasswordBox}" Visibility="Collapsed" />
<CheckBox x:Name="ShowPasswordCharsCheckBox" Content="Show password" Checked="ShowPasswordCharsCheckBox_Checked" Unchecked="ShowPasswordCharsCheckBox_Unchecked" />
接下来,在页面代码上添加以下内容:
private void ShowPasswordCharsCheckBox_Checked(object sender, RoutedEventArgs e)
{
MyPasswordBox.Visibility = System.Windows.Visibility.Collapsed;
MyTextBox.Visibility = System.Windows.Visibility.Visible;
MyTextBox.Focus();
}
private void ShowPasswordCharsCheckBox_Unchecked(object sender, RoutedEventArgs e)
{
MyPasswordBox.Visibility = System.Windows.Visibility.Visible;
MyTextBox.Visibility = System.Windows.Visibility.Collapsed;
MyPasswordBox.Focus();
}
这很好用,但是还有一些工作,你可以完全做MVVM!
使用默认密码框,无法实现所需的功能。
您可以在这里找到更多信息:http://social.msdn.microsoft.com/Forums/en/wpf/thread/98d0d4d4-1463-481f-b8b1-711119a6ba99
您可以创建自己的继承自文本框的控件,但是在每个字符之后用*替换它,将真值存储在页面上的私有变量中。使用复选框,您可以切换文本框中的值是显示真值还是*值。
它不是一个优雅的解决方案,也不是最佳实践,但我认为如果你愿意接受它,它仍然是一个替代方案。
以上是关于在密码箱的某些事件上显示密码字符的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中具有流畅验证的正则表达式 - 如何在密码中不允许空格和某些特殊字符?
使用 FBSDKLoginBehaviorWeb 处理 fb 集成上的错误密码事件