summaryrefslogtreecommitdiff
path: root/Codemerx/Gestor.Application/Componentes/CustomSenhaLoginBox.cs
diff options
context:
space:
mode:
authorLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 13:38:18 +0000
committerLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 13:38:18 +0000
commit1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (patch)
treee1c3b20ea08f0cf71122a1e73f0d395f8fd83874 /Codemerx/Gestor.Application/Componentes/CustomSenhaLoginBox.cs
parent674ca83ba9243a9e95a7568c797668dab6aee26a (diff)
downloadgestor-1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1.tar.gz
gestor-1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1.zip
chore: location
Diffstat (limited to 'Codemerx/Gestor.Application/Componentes/CustomSenhaLoginBox.cs')
-rw-r--r--Codemerx/Gestor.Application/Componentes/CustomSenhaLoginBox.cs338
1 files changed, 338 insertions, 0 deletions
diff --git a/Codemerx/Gestor.Application/Componentes/CustomSenhaLoginBox.cs b/Codemerx/Gestor.Application/Componentes/CustomSenhaLoginBox.cs
new file mode 100644
index 0000000..ce1a278
--- /dev/null
+++ b/Codemerx/Gestor.Application/Componentes/CustomSenhaLoginBox.cs
@@ -0,0 +1,338 @@
+using ControlzEx;
+using MaterialDesignThemes.Wpf;
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Runtime.CompilerServices;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Markup;
+using System.Windows.Media;
+
+namespace Gestor.Application.Componentes
+{
+ public class CustomSenhaLoginBox : UserControl, IComponentConnector
+ {
+ public readonly static DependencyProperty TextProperty;
+
+ public readonly static DependencyProperty IsReadOnlyProperty;
+
+ public readonly static DependencyProperty PlaceHolderProperty;
+
+ public readonly static DependencyProperty BackgroundProperty;
+
+ public readonly static DependencyProperty ForegroundProperty;
+
+ public readonly static DependencyProperty CaretBrushProperty;
+
+ public readonly static DependencyProperty FontFamilyProperty;
+
+ public readonly static DependencyProperty FontSizeProperty;
+
+ public readonly static DependencyProperty BorderThicknessProperty;
+
+ internal Grid LayoutRoot;
+
+ internal TextBox TextRead;
+
+ internal System.Windows.Controls.PasswordBox PasswordBox;
+
+ internal Button ButtonEye;
+
+ private bool _contentLoaded;
+
+ private static bool _typing
+ {
+ get;
+ set;
+ }
+
+ public new Brush Background
+ {
+ get
+ {
+ return (Brush)base.GetValue(CustomSenhaLoginBox.BackgroundProperty);
+ }
+ set
+ {
+ base.SetValue(CustomSenhaLoginBox.BackgroundProperty, value);
+ }
+ }
+
+ public new Thickness BorderThickness
+ {
+ get
+ {
+ return (Thickness)base.GetValue(CustomSenhaLoginBox.BorderThicknessProperty);
+ }
+ set
+ {
+ base.SetValue(CustomSenhaLoginBox.BorderThicknessProperty, value);
+ }
+ }
+
+ public Brush CaretBrush
+ {
+ get
+ {
+ return (Brush)base.GetValue(CustomSenhaLoginBox.CaretBrushProperty);
+ }
+ set
+ {
+ base.SetValue(CustomSenhaLoginBox.CaretBrushProperty, value);
+ }
+ }
+
+ public new System.Windows.Media.FontFamily FontFamily
+ {
+ get
+ {
+ return (System.Windows.Media.FontFamily)base.GetValue(CustomSenhaLoginBox.FontFamilyProperty);
+ }
+ set
+ {
+ base.SetValue(CustomSenhaLoginBox.FontFamilyProperty, value);
+ }
+ }
+
+ public new int FontSize
+ {
+ get
+ {
+ return (int)base.GetValue(CustomSenhaLoginBox.FontSizeProperty);
+ }
+ set
+ {
+ base.SetValue(CustomSenhaLoginBox.FontSizeProperty, value);
+ }
+ }
+
+ public new Brush Foreground
+ {
+ get
+ {
+ return (Brush)base.GetValue(CustomSenhaLoginBox.ForegroundProperty);
+ }
+ set
+ {
+ base.SetValue(CustomSenhaLoginBox.ForegroundProperty, value);
+ }
+ }
+
+ public bool IsReadOnly
+ {
+ get
+ {
+ return (bool)base.GetValue(CustomSenhaLoginBox.IsReadOnlyProperty);
+ }
+ set
+ {
+ base.SetValue(CustomSenhaLoginBox.IsReadOnlyProperty, value);
+ }
+ }
+
+ public string PlaceHolder
+ {
+ get
+ {
+ return (string)base.GetValue(CustomSenhaLoginBox.PlaceHolderProperty);
+ }
+ set
+ {
+ base.SetValue(CustomSenhaLoginBox.PlaceHolderProperty, value);
+ }
+ }
+
+ public string Text
+ {
+ get
+ {
+ return (string)base.GetValue(CustomSenhaLoginBox.TextProperty);
+ }
+ set
+ {
+ base.SetValue(CustomSenhaLoginBox.TextProperty, value);
+ }
+ }
+
+ static CustomSenhaLoginBox()
+ {
+ CustomSenhaLoginBox.TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(CustomSenhaLoginBox), new PropertyMetadata(string.Empty, new PropertyChangedCallback(CustomSenhaLoginBox.OnBoundPasswordChanged)));
+ CustomSenhaLoginBox.IsReadOnlyProperty = DependencyProperty.Register("IsReadOnly", typeof(bool), typeof(CustomSenhaLoginBox), new PropertyMetadata(false, new PropertyChangedCallback(CustomSenhaLoginBox.OnBoundIsReadOnlyChanged)));
+ CustomSenhaLoginBox.PlaceHolderProperty = DependencyProperty.Register("PlaceHolder", typeof(string), typeof(CustomSenhaLoginBox), new FrameworkPropertyMetadata("SENHA", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
+ CustomSenhaLoginBox.BackgroundProperty = DependencyProperty.Register("Background", typeof(Brush), typeof(CustomSenhaLoginBox), new PropertyMetadata(null, new PropertyChangedCallback(CustomSenhaLoginBox.OnBackgroundChanged)));
+ CustomSenhaLoginBox.ForegroundProperty = DependencyProperty.Register("Foreground", typeof(Brush), typeof(CustomSenhaLoginBox), new PropertyMetadata(null, new PropertyChangedCallback(CustomSenhaLoginBox.OnForegroundChanged)));
+ CustomSenhaLoginBox.CaretBrushProperty = DependencyProperty.Register("CaretBrush", typeof(Brush), typeof(CustomSenhaLoginBox), new PropertyMetadata(null, new PropertyChangedCallback(CustomSenhaLoginBox.OnCaretBrushChanged)));
+ CustomSenhaLoginBox.FontFamilyProperty = DependencyProperty.Register("FontFamily", typeof(System.Windows.Media.FontFamily), typeof(CustomSenhaLoginBox), new PropertyMetadata(null, new PropertyChangedCallback(CustomSenhaLoginBox.OnFontFamilyChanged)));
+ CustomSenhaLoginBox.FontSizeProperty = DependencyProperty.Register("FontSize", typeof(int), typeof(CustomSenhaLoginBox), new PropertyMetadata((object)10, new PropertyChangedCallback(CustomSenhaLoginBox.OnFontSizeChanged)));
+ CustomSenhaLoginBox.BorderThicknessProperty = DependencyProperty.Register("BorderThickness", typeof(Thickness), typeof(CustomSenhaLoginBox), new PropertyMetadata((object)(new Thickness(1)), new PropertyChangedCallback(CustomSenhaLoginBox.OnBorderThicknessChanged)));
+ }
+
+ public CustomSenhaLoginBox()
+ {
+ this.InitializeComponent();
+ this.LayoutRoot.DataContext = this;
+ }
+
+ private void Eye_Click(object sender, RoutedEventArgs e)
+ {
+ if (this.IsReadOnly)
+ {
+ return;
+ }
+ Button button = sender as Button;
+ this.TextRead.Visibility = (this.TextRead.Visibility == System.Windows.Visibility.Collapsed ? System.Windows.Visibility.Visible : System.Windows.Visibility.Collapsed);
+ this.PasswordBox.Visibility = (this.TextRead.Visibility == System.Windows.Visibility.Collapsed ? System.Windows.Visibility.Visible : System.Windows.Visibility.Collapsed);
+ if (button != null && button.Content != null)
+ {
+ ((PackIcon)button.Content).set_Kind((this.TextRead.Visibility == System.Windows.Visibility.Collapsed ? 1492 : 1497));
+ }
+ if (this.PasswordBox.Visibility != System.Windows.Visibility.Visible)
+ {
+ return;
+ }
+ this.PasswordBox.Focus();
+ this.PasswordBox.SelectAll();
+ }
+
+ [DebuggerNonUserCode]
+ [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent()
+ {
+ if (this._contentLoaded)
+ {
+ return;
+ }
+ this._contentLoaded = true;
+ System.Windows.Application.LoadComponent(this, new Uri("/Gestor.Application;component/componentes/customsenhaloginbox.xaml", UriKind.Relative));
+ }
+
+ private static void OnBackgroundChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ CustomSenhaLoginBox newValue = d as CustomSenhaLoginBox;
+ if (d == null || newValue == null)
+ {
+ return;
+ }
+ newValue.Background = (Brush)e.NewValue;
+ }
+
+ private static void OnBorderThicknessChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ CustomSenhaLoginBox newValue = d as CustomSenhaLoginBox;
+ if (d == null || newValue == null)
+ {
+ return;
+ }
+ newValue.BorderThickness = (Thickness)e.NewValue;
+ }
+
+ private static void OnBoundIsReadOnlyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ CustomPasswordBox customPasswordBox = d as CustomPasswordBox;
+ if (d == null || customPasswordBox == null)
+ {
+ return;
+ }
+ bool newValue = (bool)e.NewValue;
+ customPasswordBox.PasswordBox.Visibility = (newValue ? System.Windows.Visibility.Collapsed : System.Windows.Visibility.Visible);
+ customPasswordBox.TextRead.Visibility = (newValue ? System.Windows.Visibility.Visible : System.Windows.Visibility.Collapsed);
+ }
+
+ private static void OnBoundPasswordChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ CustomSenhaLoginBox customSenhaLoginBox = d as CustomSenhaLoginBox;
+ if (d == null || customSenhaLoginBox == null)
+ {
+ return;
+ }
+ string newValue = (string)e.NewValue ?? "";
+ if (CustomSenhaLoginBox._typing)
+ {
+ return;
+ }
+ customSenhaLoginBox.PasswordBox.Password = newValue;
+ }
+
+ private static void OnCaretBrushChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ CustomSenhaLoginBox newValue = d as CustomSenhaLoginBox;
+ if (d == null || newValue == null)
+ {
+ return;
+ }
+ newValue.CaretBrush = (Brush)e.NewValue;
+ }
+
+ private static void OnFontFamilyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ CustomSenhaLoginBox newValue = d as CustomSenhaLoginBox;
+ if (d == null || newValue == null)
+ {
+ return;
+ }
+ newValue.FontFamily = (System.Windows.Media.FontFamily)e.NewValue;
+ }
+
+ private static void OnFontSizeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ CustomSenhaLoginBox newValue = d as CustomSenhaLoginBox;
+ if (d == null || newValue == null)
+ {
+ return;
+ }
+ newValue.FontSize = (int)e.NewValue;
+ }
+
+ private static void OnForegroundChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ CustomSenhaLoginBox newValue = d as CustomSenhaLoginBox;
+ if (d == null || newValue == null)
+ {
+ return;
+ }
+ newValue.Foreground = (Brush)e.NewValue;
+ }
+
+ private void PasswordBox_PasswordChanged(object sender, RoutedEventArgs e)
+ {
+ CustomSenhaLoginBox._typing = true;
+ this.Text = this.PasswordBox.Password;
+ CustomSenhaLoginBox._typing = false;
+ }
+
+ [DebuggerNonUserCode]
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
+ {
+ switch (connectionId)
+ {
+ case 1:
+ {
+ this.LayoutRoot = (Grid)target;
+ return;
+ }
+ case 2:
+ {
+ this.TextRead = (TextBox)target;
+ return;
+ }
+ case 3:
+ {
+ this.PasswordBox = (System.Windows.Controls.PasswordBox)target;
+ this.PasswordBox.PasswordChanged += new RoutedEventHandler(this.PasswordBox_PasswordChanged);
+ return;
+ }
+ case 4:
+ {
+ this.ButtonEye = (Button)target;
+ this.ButtonEye.Click += new RoutedEventHandler(this.Eye_Click);
+ return;
+ }
+ }
+ this._contentLoaded = true;
+ }
+ }
+} \ No newline at end of file