PasswordBox控件

在应用程序的登录界面中,有时需要用户输入用户名和密码进行身份验证,应用程序中的密码框可以通过使用PasswordBox控件来实现。PasswordBox控件与TextBox控件都可以用于接收用户输入的数据,但是区别在于,PasswordBox控件会以密文形式显示用户输入的信息,从而达到隐藏输入密码的效果。

在XAML文件中,PasswordBox控件的用法如下所示:

<PasswordBox .../>

下面介绍一下PasswordBox控件的两个常用属性:

  • Password属性,获取或设置PasswordBox控件当前保留的密码。
  • PasswordChar属性,获取或设置PasswordBox控件的掩码字符。可以通过设置PasswordChar属性的值来更改用户在PasswordBox控件中输入文本时显示的掩码字符。

接下来使用PasswordBox控件设计一个可更改掩码且可显示输入密码的应用示例。

新建一个名为"PasswordBoxDemo"的Windows应用商店的空白应用程序项目,在MainPage.xaml文件的Grid元素中添加如下代码。

<!--"PasswordBox控件示例"和"掩码:"文本块-->

<TextBlock FontSize="40" Margin="100,100,0,619" Text="PasswordBox控件示例"/>

<TextBlock HorizontalAlignment="Left" FontSize="20" Margin="100,174,0,570" TextWrapping="Wrap" Text="掩码:" VerticalAlignment="Center"/>

<!--接收输入的掩码字符文本框-->

<TextBox Name="SetPasswordChar" HorizontalAlignment="Left" Margin="165,166,0,570" TextWrapping="Wrap" Text="" VerticalAlignment="Center" Width="181" MaxLength="1" Height="13"/>

<!--"更改掩码"按钮-->

<Button Name="ChangePasswordChar" Content="更改掩码" Margin="367,154,0,565" FontSize="20" Height="49" Click="ChangePasswordChar_Click"/>

<!--"密码:"文本块-->

<TextBlock HorizontalAlignment="Left" FontSize="20" Margin="100,219,0,525" TextWrapping="Wrap" Text="密码:" VerticalAlignment="Center"/>

<!--PasswordBox密码框-->

<PasswordBox Name="SetPassword" HorizontalAlignment="Left" Margin="165,211,0,525" VerticalAlignment="Center" Width="181"/>

<!--"获取密码"按钮-->

<Button Name="GetPassword" Click="GetPassword_Click" Margin="367,203,0,520" Content="获取密码" FontSize="20"/>

<!--"显示密码:"文本块-->

<TextBlock Text="显示密码:" FontSize="20" VerticalAlignment="Center" Margin="100,253,1169,491"/>

<!--用来显示密码的文本块-->

<TextBlock Name="PasswordMessage" FontSize="20" VerticalAlignment="Center" Margin="215,253,-215,491"/>

在上面的代码中,添加了五个TextBlock文本块,分别用来显示"PasswordBox控件示例"、"掩码:"、"密码:"、"显示密码:"这四段文字和密码内容文本信息。接着放置两个Button按钮,设置这两个按钮的Content属性值分别为"更改掩码"和"获取密码", 用于单击按钮时更改掩码字符和获取输入的密码。再添加一个TextBox文本框和一个PasswordBox控件,TextBox文本框用于接收输入的掩码字符,PasswordBox控件用于输入密码。

前台运行效果如图4-18所示。

图4-18 PasswordBox控件示例

布局好前台界面后,打开MainPage.xaml.cs文件,为"更改掩码"按钮添加单击事件处理方法ChangePasswordChar_Click,用于更改PasswordBox控件的掩码字符,代码如下所示:

private void ChangePasswordChar_Click(object sender, RoutedEventArgs e)

{

if (SetPasswordChar.Text.Length == 1)

{

//设置掩码字符

SetPassword.PasswordChar = SetPasswordChar.Text;

}

}

在上面的代码中,使用if语句判断在文本框SetPasswordChar中输入文本的长度是否为1,如果满足此条件,表示输入了一个用于更改掩码的字符。将SetPasswordChar文本框的Text属性值赋给密码框SetPassword的PasswordChar属性,这样便可以改变PasswordBox控件的掩码字符。

接着为"获取密码"按钮添加单击事件处理方法GetPassword_Click,当单击"获取密码"按钮后,在PasswordMessage文本块中显示输入的密码,代码如下所示:

private void GetPassword_Click(object sender, RoutedEventArgs e)

{

//获取输入的密码并显示

PasswordMessage.Text = SetPassword.Password;

}

在上面的代码中,把密码框SetPassword的Password属性值赋给文本块PasswordMessage的Text属性,将输入的密码在PasswordMessage文本块中显示出来。

运行程序,如果不更改掩码,则以默认掩码字符在密码框中显示输入的密码。当更改掩码为"*"时,在密码框中输入密码"123456789",密码框中将显示为9个"*",单击"获取密码"按钮,界面下方会显示输入的密码信息,效果如图4-19所示。

图4-19 使用PasswordBox控件示例

Win10系列:C#应用控件基础10的更多相关文章

  1. Win10系列:JavaScript 控件的使用

    向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Wi ...

  2. 重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree

    原文:重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree [源码下载] 重新想象 ...

  3. 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试

    原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store ...

  4. WPF从我炫系列4---装饰控件的用法

    这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...

  5. Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem

    Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...

  6. 【转】PyQt5系列教程(七)控件

    PyQt5系列教程(七)控件   软硬件环境 Windows 10 Python 3.4.2 PyQt 5.5.1 PyCharm 5.0.4 前言 控件是PyQt应用程序的基石.PyQt5自带很多不 ...

  7. WPF 模仿 UltraEdit 文件查看器系列一 用户控件

    WPF 模仿 UltraEdit 文件查看器系列一 用户控件 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-10 章节: 起步 添加用户控件 ...

  8. C#控件系列--文本类控件

    C#控件系列--文本类控件         文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能         Label用来 ...

  9. WPF编游戏系列 之四 用户控件

    原文:WPF编游戏系列 之四 用户控件        在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...

随机推荐

  1. 【LeetCode每天一题】Maximum Subarray(最大子数组)

    Given an integer array nums, find the contiguous subarray (containing at least one number) which has ...

  2. idea快捷键使用

    idea                                 eclipse project                           workspace module     ...

  3. python模拟面试技术题答案

      目录 Python4期模拟面试技术面试题答案............................................................................ ...

  4. 用HTML+CSS实现一个计科院网站首页静态页面

    链接:https://pan.baidu.com/s/1akwyc89q3nzKDQQulaFelQ 提取码:s6ys

  5. autotools源文件相同/不同目录下

    关于Autotools 我们前面的章节中已经讲到了Makefile的使用(点击进入查看文章).我们知道在Linux下面如果编译一个比较大型的项目,我们可以通过Makefile的方式来完成. 但是,我们 ...

  6. ansible的高级应用-roles

    在之前我们知道了playbook,类似于shell的脚本,playbook适用于一些不太麻烦的部署任务,比如说使用playbook安装mysql,那么我们直接写一个playbook文件即可.可是如果我 ...

  7. dart字符串处理

    1.字符串创建(1)使用单引号,双引号创建字符串(2)使用三个引号或双引号创建多行字符串(3)使用r创建原始raw字符串(转义字符等特殊字符会输出出来,而不会自动被转义) (1)例如:String s ...

  8. K8S学习笔记之二进制部署Kubernetes v1.13.4 高可用集群

    0x00 概述 本次采用二进制文件方式部署,本文过程写成了更详细更多可选方案的ansible部署方案 https://github.com/zhangguanzhang/Kubernetes-ansi ...

  9. 【题解】Luogu P3287 [SCOI2014]方伯伯的玉米田

    原题传送门 一眼就能看出来这是一道dp题 显而易见每次操作的右端点一定是n,每株玉米被拔高的次数随位置不下降 用f(i,j) 表示以第i 株玉米结尾它被拔高了j 次的最长序列长度. \(f(i,j)= ...

  10. [c/c++] programming之路(17)、高级指针

    一.二级指针 二级指针的作用:1.函数改变外部变量指针2.外挂改变一个指针的值 #include<stdio.h> #include<stdlib.h> void main() ...