在密码箱的某些事件上显示密码字符
我正在开发一个Windows Phone应用程序。在那里我要求用户登录。在密码箱的某些事件上显示密码字符
在登录页面上,用户必须输入密码。
现在我想要的是,我给用户一个复选框,当选定时应显示密码的字符。
我还没有看到密码框中的任何属性来显示密码字符。
请建议一些方法来做到这一点。
不要认为这是可能与PasswordBox ...只是一个想法,但你可能会使用一个隐藏的文本框实现相同的结果,当用户点击复选框,你只需隐藏密码框并显示文本框;如果他再次点击,你再次打开自己的知名度状态,等等...
编辑
这里,它是如何!
只需添加一个页面,更改的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!
但是当复选框被选中时显示一个小故障 – rakesh 2012-04-11 09:12:42
@rakeshkumar有什么故障?你能描述一下吗? – 2012-04-11 10:00:35
老兄!这真太了不起了。太简单。谢谢!! – 2014-03-01 06:10:23
使用默认密码箱无法实现您想要的功能。
的更多信息,你可以在这里找到:http://social.msdn.microsoft.com/Forums/en/wpf/thread/98d0d4d4-1463-481f-b8b1-711119a6ba99
该帖子相当老,现在不反映PasswordBox.Password的真实性质,因为现在这是一个依赖属性,所以你可以绑定它! – 2012-04-10 17:08:37
您可以创建自己的控件,它可以从文本框继承,但是在每个字符替换为*之后,将真实值存储在页面上的私有变量中。使用复选框,您可以切换文本框中的值是显示真值还是*值。
这不是一个优雅的解决方案,也不是一个最佳实践,但我认为如果你愿意接受它,它仍然是一种选择。
为什么不使用文本框? – tomasmcguinness 2012-04-10 15:25:01