如何使密码框在wpf中不可编辑
本文关键字:编辑 wpf 何使 密码 | 更新日期: 2023-09-27 18:08:45
我需要使密码框在wpf中不可编辑。我使用了
IsEnabled = false
但是它影响了我的风格,一些模糊效果出现了。还有其他方法吗?
我知道这是两年前的事了,但我有同样的需求,并以这种方式解决了它:这两个属性的组合,都设置为false,将阻止在控件中输入/编辑,而不会影响你想要的样式:Focusable, IsHitTestVisible
您可以处理PreviewTextInput
事件,阻止用户输入文本。像这样:
<PasswordBox PreviewTextInput="HandleInput"/>
后台代码:private void HandleInput(object sender, TextCompositionEventArgs e) {
e.Handled = true;
}
一个解决方案是创建一个自定义功能来模拟IsReadOnly
。
有几件事要照顾-例如
clipboard pasting
。
通过定义一些附加属性(例如IsPasswordReadOnly
或相同),您将获得similar behavior
-这将解决所有需要的问题。
这是一个很好的开始示例-如果我认为它也可以用于密码框-但我还没有尝试过,你必须自己测试。
只读文本框,适用于具有可见光标的WPF。. NET 3.5)
你必须用PasswordBox
替换TextBox
的引用,将其重命名为IsReadOnly -我认为其余的可能工作相同。
你用它就像…
<PasswordBox my:AttachReadOnly.IsReadOnly="True" />
非常简单。
在XML中为PreviewTextInput设置一个事件处理程序,如下所示:
PreviewTextInput="PasswordBoxOnPreviewTextInput"
在这个方法中:
private void PasswordBoxOnPreviewTextInput(object sender, TextCompositionEventArgs e)
{
if (m_DisablePasswordBox)
e.Handled = true;
}
它现在会阻止你输入任何东西:)