BorderBrush的颜色不会立即改变,除非失去焦点

本文关键字:失去 焦点 改变 颜色 BorderBrush | 更新日期: 2023-09-27 18:05:30

我有一个确认密码框与PasswordBox控制。如果密码在事件中不匹配,我将颜色设置为红色。它会在失去焦点后改变边框颜色。我需要的是在输入密码后立即改变颜色,不要失去焦点。因为它没有绑定到属性,所以我不能在XAML中设置UpdateSourceTrigger。下面是代码:

private void Confirm_PasswordChanged(object sender, RoutedEventArgs e)
{            
        if(MiscParameterViewModel.servServiceLoginType == ServiceLoginTypes.Windows)
        {
            if(!string.Equals(PasswordAgainBox.Password, MiscParameterViewModel.password))
            {
                PasswordAgainBox.BorderBrush=new SolidColorBrush(Colors.Red);
                System.Windows.Controls.ToolTip toolTip = new System.Windows.Controls.ToolTip();
                toolTip.Content = "Passwords don't match!";
                ToolTipService.SetToolTip(PasswordAgainBox, toolTip);
                MiscParameterViewModel.nextButtonIsEnabled = false;

            }                
        }
}    

BorderBrush的颜色不会立即改变,除非失去焦点

当你这样做的时候呢?

<Border x:Name ="PwBoxBorder" BorderThickness="1" > <PasswordBox KeyDown="PwBox_OnKeyDown" /> </Border>

如果你设置了PwBoxBorder的颜色

KeyDown事件代替PasswordChanged