首次提交:添加src文件夹代码
This commit is contained in:
56
Cowain.Bake.Common/PasswordHelper.cs
Normal file
56
Cowain.Bake.Common/PasswordHelper.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace Cowain.Bake.Common
|
||||
{
|
||||
public class PasswordHelper
|
||||
{
|
||||
public static readonly DependencyProperty PasswordProperty = DependencyProperty.RegisterAttached("Password", typeof(string), typeof(PasswordHelper),
|
||||
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(PasswordHelper),
|
||||
new PropertyMetadata(new PropertyChangedCallback(OnAttachChanged)));
|
||||
|
||||
public static string GetAttach(DependencyObject d)
|
||||
{
|
||||
return (string)d.GetValue(AttachProperty);
|
||||
}
|
||||
public static void SetAttach(DependencyObject d, string value)
|
||||
{
|
||||
d.SetValue(AttachProperty, 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user