Using XAML PasswordBox in WPF

XAML PasswordBox in WPF

Introduction

The XAML PasswordBox element represents a password box. WPF comes with a built-in PasswordBox control that allows you to handle and manage passwords in a WPF application. You can think of a PasswordBox control as a TextBox control with the masking feature enabled. The PasswordBox control allows you to hide the characters and limit the number of characters to be typed in the editable area.

This article shows how to create and use a PasswordBox control in WPF using XAML, C# and Visual Basic .NET.

Properties

The PasswordBox element in XAML represents a PasswordBox control. The following code snippet creates a PasswordBox and sets a few of its properties such as Height, Width, Foreground and Background.

  1. <PasswordBox Height="42" Width="200" Margin="22,28,28,0"   
  2.    Name="passwordBox1" VerticalAlignment="Top"   
  3.    Background="LightBlue" Foreground="DarkBlue"   
  4. />  
The default PasswordBox looks as in Figure 1.


Figure 1

The MaxLength property gets and sets the maximum number of characters you can enter in a PasswordBox.

The Password property is used to get and set the current password in a PasswordBox.

The PasswordBox is not a PasswordBox without its masking feature. The PasswordChar property is used to get and set the masking character for the PasswordBox. The default masking character is a dot.

The following code snippets sets the MaxLength, PasswordChar and Password properties of a PasswordBox control.
  1. <PasswordBox Height="42" Width="200" Margin="22,28,28,0"   
  2.    Name="passwordBox1" VerticalAlignment="Top"   
  3.    Background="LightBlue" Foreground="DarkBlue"   
  4.    MaxLength="25" PasswordChar="*"   
  5.    Password="mahesh"  
  6. />  
The output looks as in Figure 2. The editing will stop as soon as you type 25 characters into the PasswordBox.


Figure 2

The SecurePassword property gets the password currently held by the PasswordBox as a SecureString. The SecureString represents text that should be kept confidential. The text is encrypted for privacy when being used and is deleted from computer memory when no longer needed.

Events

Besides the preceding discussed properties, the PasswordBox has a very important event called PasswordChanged. This even occurs when the value of the Password property is changed.

The following code snippet sets this property and shows a property event handler.
  1. <PasswordBox Height="42" Width="200" Margin="22,28,28,0"   
  2.    Name="passwordBox1" VerticalAlignment="Top"   
  3.    Background="LightBlue" Foreground="DarkBlue"   
  4.    MaxLength="25" PasswordChar="*"   
  5.    Password="mahesh" PasswordChanged="passwordBox1_PasswordChanged"  
  6. />  
Here is the PasswordChanged event handler. You may want to use this property when you need to execute some code when a password is changed.
  1. private void passwordBox1_PasswordChanged(object sender, RoutedEventArgs e)  
  2. {  
  3.    MessageBox.Show("Password changed");  
  4. }  
Create a PasswordBox Dynamically

The following code snippet creates a PasswordBox and sets its properties at run-time.
  1. private void CreatePasswordBoxDynamically()  
  2. {  
  3.    PasswordBox pw = new PasswordBox();  
  4.    pw.Height = 30;  
  5.    pw.Width = 200;  
  6.    pw.Background = new SolidColorBrush(Colors.LightBlue);  
  7.    pw.Foreground = new SolidColorBrush(Colors.DarkBlue);  
  8.    pw.MaxLength = 25;  
  9.    pw.PasswordChar = '*';  
  10.   
  11.    RootLayout.Children.Add(pw);   
  12. }  
Here is the code-behind sample written in Visual Basic .NET.
  1. Sub CreatePasswordBoxDynamically()  
  2.    Dim pw As New PasswordBox()  
  3.    pw.Height = 30  
  4.    pw.Width = 200  
  5.    pw.Background = New SolidColorBrush(Colors.LightBlue)  
  6.    pw.Foreground = New SolidColorBrush(Colors.DarkBlue)  
  7.    pw.MaxLength = 25  
  8.    pw.PasswordChar = "*"  
  9.    RootLayout.Children.Add(pw)  
  10. End Sub   
Summary

In this article, we learned how to create and use a PasswordBox control in WPF using XAML and C#.

Up Next
    Ebook Download
    View all
    Learn
    View all