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

Extended WPF Toolkit - WatermarkPasswordBox prevent from typing in enter value

我有一个小问题,如标题所示,WatermarkPasswordBox。如果我使用普通 WPF 的 PasswordBox,我不能在那里输入 Enter 键(值是 \n),这很好。但是当我使用 Extended WPF Toolkit 中的 WatermarkPasswordBox 时,它会不断地输入 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 的 PasswordBox,但这很烦人。

更准确地说:

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

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

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