You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.0 KiB
C#
61 lines
2.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using Microsoft.Xaml.Behaviors;
|
|
|
|
namespace Txgy.EWS.Client.Common.Extensions
|
|
{
|
|
public class PassWordExtensions
|
|
{
|
|
public static string GetPassWord(DependencyObject obj)
|
|
{
|
|
return (string)obj.GetValue(PassWordProperty);
|
|
}
|
|
|
|
public static void SetPassWord(DependencyObject obj, string value)
|
|
{
|
|
obj.SetValue(PassWordProperty, value);
|
|
}
|
|
|
|
public static readonly DependencyProperty PassWordProperty =
|
|
DependencyProperty.RegisterAttached("PassWord", typeof(string), typeof(PassWordExtensions), new FrameworkPropertyMetadata(string.Empty, OnPassWordPropertyChanged));
|
|
|
|
static void OnPassWordPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
|
|
{
|
|
var passWord = sender as PasswordBox;
|
|
string password = (string)e.NewValue;
|
|
|
|
if (passWord != null && passWord.Password != password)
|
|
passWord.Password = password;
|
|
}
|
|
}
|
|
|
|
public class PasswordBehavior : Behavior<PasswordBox>
|
|
{
|
|
protected override void OnAttached()
|
|
{
|
|
base.OnAttached();
|
|
AssociatedObject.PasswordChanged += AssociatedObject_PasswordChanged;
|
|
}
|
|
|
|
private void AssociatedObject_PasswordChanged(object sender, RoutedEventArgs e)
|
|
{
|
|
PasswordBox passwordBox = sender as PasswordBox;
|
|
string password = PassWordExtensions.GetPassWord(passwordBox);
|
|
|
|
if (passwordBox != null && passwordBox.Password != password)
|
|
PassWordExtensions.SetPassWord(passwordBox, passwordBox.Password);
|
|
}
|
|
|
|
protected override void OnDetaching()
|
|
{
|
|
base.OnDetaching();
|
|
AssociatedObject.PasswordChanged -= AssociatedObject_PasswordChanged;
|
|
}
|
|
}
|
|
}
|