扩展的WPF工具包 - WatermarkPasswordBox阻止输入输入值

时间:2018-01-10 09:15:53

标签: c# wpf visual-studio mvvm wpftoolkit

我有一个小问题,标题是用WatermarkPasswordBox说的。如果我使用普通的WPF密码盒,我就无法输入Enter键(值为private void TextBox_Password_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { } } private void TextBox_Password_KeyUp(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { } } private void TextBox_Password_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { } } private void TextBox_Password_PreviewKeyUp(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { } } ),这很好。但是当我使用Extended WPF Toolkit中的WatermarkPasswordBox时,它会不断输入Enter值。

我试图以这种方式对输入密钥执行任何操作:

solve(args) {
       var primeNumbers = [1];
       for(var i=1; i<=args ;i++){
          var isPrime = true;
             for(var j=2; j<i; j++){
                if(i%j === 0){
                    isPrime = false;
                }
             }
          if(isPrime === true){
             primeNumbers.push(i);
          }
       }
       console.log(primeNumbers);
    }

但它没有帮助..我真的想使用Extended WPF Toolkit的PasswordBox,但这非常烦人。

更确切地说: How it looks

1 个答案:

答案 0 :(得分:2)

通常不处理输入键的文本框本身;相反,如果表单包含标记为默认的按钮,则该按钮会截取当前对话框的回车键。如果表单上有这样的按钮,则不需要明确处理回车键。

但是如果你想要这样做,那么这样做的方法是处理PreviewKeyDown事件并将EventArgs的Handled属性设置为true:

    private void WatermarkPasswordBox_PreviewKeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter) e.Handled = true;
    }