using System.Windows; using System.Windows.Controls; namespace Server_Dashboard { public class MonitorPasswordProperty : BaseAttachedProperty { public override void OnValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { var passwordBox = sender as PasswordBox; if (passwordBox == null) return; passwordBox.PasswordChanged -= PasswordBox_PasswordChanged; if ((bool)e.NewValue) { HasTextProperty.SetValue(passwordBox); passwordBox.PasswordChanged += PasswordBox_PasswordChanged; } } private void PasswordBox_PasswordChanged(object sender, RoutedEventArgs e) { HasTextProperty.SetValue((PasswordBox)sender); } } public class HasTextProperty : BaseAttachedProperty { public static void SetValue(DependencyObject sender) { SetValue(sender, ((PasswordBox)sender).SecurePassword.Length < 1); } } }