WPF - PasswordBox 密码框控件

PasswordBox 密码框是一个允许用户输入屏蔽密码的控件。 当用户输入密码时,它将显示为密码字符。 您可以通过设置PasswordChar 属性来更改密码字符。 PasswordBox类的层次继承如下−

密码箱层次结构

PasswordBox类的常用属性

序号 属性和描述
1

InputScope

获取或设置此PasswordBox使用的输入上下文。

2

InputScopeProperty

标识InputScope依赖属性。

3

IsPasswordRevealButtonEnabled

获取或设置一个值,该值指定PasswordBox的可视UI是否包含用于切换显示或隐藏键入字符的按钮元素。 在 Windows 10 及更高版本中,请改用PasswordRevealMode。

4

IsPasswordRevealButtonEnabledProperty

标识 IsPasswordRevealButtonEnabled 依赖属性。

5

MaxLength

获取或设置此PasswordBox 处理的密码的最大长度。

6

MaxLengthProperty

标识 MaxLength 依赖属性。

7

Password

获取或设置PasswordBox当前持有的密码。

8

PasswordChar

获取或设置PasswordBox的掩码字符。

9

PasswordCharProperty

标识PasswordChar依赖属性。

10

PasswordProperty

标识密码依赖属性。

11

PasswordRevealMode

获取或设置一个值,该值指定密码是否始终、从不或可选地被隐藏。

12

PasswordRevealModeProperty

标识PasswordRevealMode依赖属性。

13

Resources

获取本地定义的资源字典。 在 XAML 中,您可以通过 XAML 隐式集合语法将资源项建立为 FrameworkElement.Resources 属性元素的子对象元素。 (继承自FrameworkElement)

PasswordBox类常用事件

序号 事件和描述
1

ContextMenuOpening

当系统处理显示上下文菜单的交互时发生。

2

GotFocus

当 UIElement 获得焦点时发生。 (继承自UIElement)

3

PasswordChanged

当密码属性的值更改时发生。

4

Paste

将文本粘贴到控件中时发生。

以下是PasswordBox类的常用方法。

序号 方法及描述
1

OnLostFocus

在 LostFocus 事件发生之前调用。 (继承自Control)

2

SelectAll

选择密码框中的所有字符。

3

SetBinding

使用提供的绑定对象将绑定附加到 FrameworkElement。 (继承自FrameworkElement)

4

SetValue

设置 DependencyObject 上的依赖属性的本地值。 (继承自DependencyObject)

以下示例显示了密码框、标签和按钮。 下面是创建和初始化所有这些控件的 XAML 代码。

<Window x:Class = "PasswordBox.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   Title = "MainWindow" Height = "350" Width = "604"> 
	
   <Grid > 
      <PasswordBox x:Name = "pwBox" Height = "35" Width = "200" 
         MaxLength = "8" Margin = "159,55,158,229" /> 
      <Label Content = "Password" HorizontalAlignment = "Left" Margin = "108,61,0,0"  
         VerticalAlignment = "Top" Width = "70" /> 
      <Button Content = "Ok" HorizontalAlignment = "Left" Margin = "406,64,0,0" 
         VerticalAlignment = "Top" Width = "75" Click = "Button_Click"/> 
      <Label Name = "statusText" HorizontalAlignment = "Left" Margin = "159,128,0,0"  
         VerticalAlignment = "Top" Width = "200" Height = "38"/> 
   </Grid> 
	
</Window>

这是按钮单击事件在 C# 中的实现,其中程序会比较输入的密码是否为"wpf12345",然后它将在文本块上显示正确的密码消息 。

using System.Windows;  

namespace WPFPasswordBoxControl { 
   /// <summary>
      /// Interaction logic for MainWindow.xaml 
   /// </summary> 
	
   public partial class MainWindow : Window {
	
      public MainWindow() { 
         InitializeComponent(); 
      }  
		
      private void Button_Click(object sender, RoutedEventArgs e) { 
		
         if (pwBox.Password.ToString() == "wpf12345") 
            statusText.Text = "Password Accepted"; 
         else 
            statusText.Text = "Wrong Password"; 
      } 
		
   } 
}

上面的代码编译执行后,会产生如下窗口 −

密码框输出

我们建议您执行上面的示例代码并尝试PasswordBox类的其他属性和事件。

❮ wpf_controls.html