开发工具与关键技术: Visual Studio 2017、C#语言、WPF
作者:邓李庆
撰写时间: 2019年9月08日
下面是如何在WPF中显示验证码,首先在给一个盒子把按钮装起来,然后再给盒子一个一个背景样式为透明,透明代码“Transparent”然后给边框的画线为白色。最后在按钮里面放一个图片的盒子 > Image 标签,见下图片代码:
<StackPanel Orientation="Horizontal">
<TextBox HorizontalAlignment="Center" Height="25" Width="90" BorderThickness="0,0,1,0" Foreground="Gray" FontSize="14" x:Name="YZM"/>
<Button Height="25" Width="90" Click="GetImage" Background="Transparent" BorderBrush="White">
<Image x:Name="image"/>
</Button>
</StackPanel>
然后调用一个类“ValidCode”;来生成五位随机字母,形成图片;
类下载:ValidCode.cs
public void GetImage(object sender, RoutedEventArgs e)
{
Images();
}
///验证码图片
private void Images()
{
ValidCode validCode = new ValidCode(5, ValidCode.CodeType.Alphas);
this.image.Source = BitmapFrame.Create(validCode.CreateCheckCodeImage());
//获取验证码的值,并且转换成小写 ToLower()转换小写
StrCopy = validCode.CheckCode.ToLower();
}
然后使用按钮点击事件,Click事件,来调用。然后在登录按钮里面进行验证,获取验证码和输入的验证码进行对比是否一样,一样的执行则退出。
private void btn_login_Click(object sender, RoutedEventArgs e)
{
string YanZhenMa = YZM.Text.ToString().ToLower();//验证码
//判断验证码
if (StrCopy != YanZhenMa)
{
写判断账号密码登录页面内容
}else{
MessageBox.Show("您输入的验证码错误!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
//进行刷新
Images();
}
小生不才,如有问题,请多多指教,谢谢