Introduction
WPF comes with a built-in PasswordBox control that allows
you to handle and manage passwords in a WPF application. You can think a
PasswordBox control as a TextBox control with 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 demonstrates how to create and use a
PasswordBox control in WPF using XAML, C# and Visual Basic .NET.
Properties
The PasswordBox element
represents 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.
<PasswordBox Height="42"
Width="200" Margin="22,28,28,0"
Name="passwordBox1" VerticalAlignment="Top"
Background="LightBlue" Foreground="DarkBlue"
/>
The default PasswordBox
looks like Figure 1.
Figure 1
The MaxLength property is
used to get and set 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.
<PasswordBox Height="42"
Width="200" Margin="22,28,28,0"
Name="passwordBox1" VerticalAlignment="Top"
Background="LightBlue" Foreground="DarkBlue"
MaxLength="25" PasswordChar="*"
Password="mahesh"
/>
The output looks like
Figure 2. The editing will stop as soon as you type 25 characters in 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 deleted from computer memory when no
longer needed.
Events
Besides the above
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.
<PasswordBox Height="42"
Width="200" Margin="22,28,28,0"
Name="passwordBox1" VerticalAlignment="Top"
Background="LightBlue" Foreground="DarkBlue"
MaxLength="25" PasswordChar="*"
Password="mahesh" PasswordChanged="passwordBox1_PasswordChanged"
/>
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.
private void passwordBox1_PasswordChanged(object sender, RoutedEventArgs
e)
{
MessageBox.Show("Password changed");
}
Create a PasswordBox Dynamically
The following code
snippet creates a PasswordBox and sets its properties at run-time.
private void CreatePasswordBoxDynamically()
{
PasswordBox
pw = new PasswordBox();
pw.Height = 30;
pw.Width = 200;
pw.Background = new
SolidColorBrush(Colors.LightBlue);
pw.Foreground = new
SolidColorBrush(Colors.DarkBlue);
pw.MaxLength = 25;
pw.PasswordChar = '*';
RootLayout.Children.Add(pw);
}
Here is the code-behind sample written in Visual Basic .NET.
Sub
CreatePasswordBoxDynamically()
Dim pw As New PasswordBox()
pw.Height = 30
pw.Width = 200
pw.Background = New SolidColorBrush(Colors.LightBlue)
pw.Foreground = New SolidColorBrush(Colors.DarkBlue)
pw.MaxLength = 25
pw.PasswordChar = "*"
RootLayout.Children.Add(pw)
End Sub
Summary
In this article, we learned how to create and use a
PasswordBox control in WPF using XAML and C#.