如何使 WPF 文本框使用密码字符?
Posted
技术标签:
【中文标题】如何使 WPF 文本框使用密码字符?【英文标题】:How to make a WPF TextBox use password characters? 【发布时间】:2011-04-17 02:31:44 【问题描述】:我需要动态设置它..
我可以将密码框设为正常文本吗? 我的意思是-用户可以看到他输入的文本。???
它的原因-> 我需要对“密码会话”和“输入项目计数”会话使用相同的控制..??
【问题讨论】:
那么,在阅读了所有答案(实际上是XY-problem-tailored)之后,并且冒着重复问题的风险,如何让 WPF 文本框使用密码字符? 【参考方案1】:你必须使用PasswordBox
而不是TextBox
:
<PasswordBox Height="42" Width="200" Margin="22,28,28,0"
Name="passwordBox1" VerticalAlignment="Top"
Background="LightBlue" Foreground="DarkBlue"
MaxLength="25" PasswordChar="*"
/>
【讨论】:
【参考方案2】:WPF 中有一个专为密码设计的新控件,称为PasswordBox
。如果您需要屏蔽输入,则应该使用它而不是 TextBox
。
Here's a brief article about it. 要检索输入的值,请使用 Password 属性。
编辑:您几乎提出了一个新问题 - 如何取消隐藏 WPF PasswordBox 中的文本?据我所知,您不能,尽管您当然可以通过从 PasswordBox.Password
获取密码值来按需将其显示在常规 TextBox 中
如果没有自定义帮助程序类,就无法将数据绑定到 PasswordBox
- 尽管这会降低新的 PasswordBox
控件 (as described here) 提供的更高安全性。考虑到这一点,this article includes a section on creating a helper class 允许您将数据绑定到PasswordBox
。
【讨论】:
【参考方案3】:或使用“密码字体”。一种将所有字符显示为点的字体。记得禁用剪切和复制剪贴板功能。
【讨论】:
你也可以添加一些链接吗?【参考方案4】:还有PasswordBox
的自定义实现,您可以根据需要进行更改,请参阅
this article。您还可以扩展 PasswordBox
无法实现的功能,因为它是一个密封类。
【讨论】:
以上是关于如何使 WPF 文本框使用密码字符?的主要内容,如果未能解决你的问题,请参考以下文章