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

时间:2015-07-29 20:14:26

标签: c# wpf

我有一个带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;


            }                
        }
}    

2 个答案:

答案 0 :(得分:1)

当你这样做的时候?

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

如果您设置了PwBoxBorder的颜色。

答案 1 :(得分:0)

只需使用KeyDown事件代替PasswordChanged