WPF中如何通过C#修改Material Design PasswordBox的HelperText?
WPF中MaterialDesign PasswordBox校验后修改HelperText的正确方法
你的问题出在直接修改依赖属性对象本身,而不是针对具体的PasswordBox控件实例设置属性值。下面是正确的实现方式:
正确代码实现
结合你XAML里的passwd控件名,在按钮点击事件中编写如下C#代码:
private void CheckPasswordButton_Click(object sender, RoutedEventArgs e) { int pwdLength = passwd.Password.Length; if (pwdLength < 10 || pwdLength > 32) { // 针对指定的PasswordBox控件设置HelperText MaterialDesignThemes.Wpf.HintAssist.SetHelperText(passwd, "Wrong!"); } else { // 校验通过时清空提示文本 MaterialDesignThemes.Wpf.HintAssist.SetHelperText(passwd, string.Empty); } }
关键说明
- WPF的依赖属性不能直接像普通字段那样赋值,必须使用对应的
SetXxx静态方法(这里是SetHelperText),传入目标控件实例和要设置的值 - 如果你需要更清晰的提示,可以把"Wrong!"替换成"密码长度必须在10-32位之间"这类明确的提示语
内容的提问来源于stack exchange,提问作者Jésus Christophe
相关产品推荐
相关产品推荐

