1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- using System.Windows;
- using System.Windows.Controls;
- namespace PDF_Office.Helper
- {
- public class PasswordBoxHelper
- {
- // 依赖附加属性 Password Attach DisplayText IsWrongValue
- public static readonly DependencyProperty PasswordProperty = DependencyProperty.RegisterAttached("Password", typeof(string), typeof(PasswordBoxHelper),
- new PropertyMetadata(new PropertyChangedCallback(OnPropertyChanged)));
- public static string GetPassword(DependencyObject d)
- {
- return (string)d.GetValue(PasswordProperty);
- }
- public static void SetPassword(DependencyObject d, string value)
- {
- d.SetValue(PasswordProperty, value);
- }
- public static readonly DependencyProperty AttachProperty = DependencyProperty.RegisterAttached("Attach", typeof(string), typeof(PasswordBoxHelper),
- new PropertyMetadata(new PropertyChangedCallback(OnAttachChanged)));
- public static string GetAttach(DependencyObject d)
- {
- return (string)d.GetValue(PasswordProperty);
- }
- public static void SetAttach(DependencyObject d, string value)
- {
- d.SetValue(PasswordProperty, value);
- }
- public static readonly DependencyProperty DisplayTextProperty = DependencyProperty.RegisterAttached("DisplayText", typeof(string), typeof(PasswordBoxHelper));
- public static string GetDisplayText(DependencyObject d)
- {
- return (string)d.GetValue(PasswordProperty);
- }
- public static void SetDisplayText(DependencyObject d, string value)
- {
- d.SetValue(PasswordProperty, value);
- }
- public static readonly DependencyProperty IsRightValueProperty = DependencyProperty.RegisterAttached("IsRightValue", typeof(string), typeof(PasswordBoxHelper));
- public static string GetIsRightValue(DependencyObject d)
- {
- return (string)d.GetValue(PasswordProperty);
- }
- public static void SetIsRightValue(DependencyObject d, string value)
- {
- d.SetValue(PasswordProperty, value);
- }
- static bool _isUpdating = false;
- private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- PasswordBox pb = (d as PasswordBox);
- pb.PasswordChanged -= Pb_PasswordChanged;
- if (!_isUpdating)
- (d as PasswordBox).Password = e.NewValue.ToString();
- pb.PasswordChanged += Pb_PasswordChanged;
- }
- private static void OnAttachChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- PasswordBox pb = (d as PasswordBox);
- pb.PasswordChanged += Pb_PasswordChanged;
- }
- private static void Pb_PasswordChanged(object sender, RoutedEventArgs e)
- {
- PasswordBox pb = (sender as PasswordBox);
- _isUpdating = true;
- SetPassword(pb, pb.Password);
- _isUpdating = false;
- }
- }
- }
|