using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Reflection;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows;
|
|
namespace XHandler.Controls
|
{
|
public class PasswordBoxAttached
|
{
|
public static readonly DependencyProperty PasswordProperty = DependencyProperty.RegisterAttached("Password", typeof(string), typeof(PasswordBoxAttached), new PropertyMetadata("", PasswordPropertyChangedCallback));
|
[AttachedPropertyBrowsableForType(typeof(System.Windows.Controls.PasswordBox))]
|
public static string GetPassword(DependencyObject obj)
|
{
|
return (string)obj.GetValue(PasswordProperty);
|
}
|
public static void SetPassword(DependencyObject obj, string value)
|
{
|
obj.SetValue(PasswordProperty, value);
|
}
|
private static void PasswordPropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
{
|
if (d is System.Windows.Controls.PasswordBox pb)
|
{
|
pb.Password = e.NewValue.ToString();
|
pb.GetType().GetMethod("Select", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(pb, new object[] { pb.Password.Length, 0 });
|
}
|
}
|
}
|
}
|