WPF获取验证码倒计时

1.先看看效果

2.xaml代码:

<Window x:Class="WpfApp1.MainWindow"
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 xmlns:local="clr-namespace:WpfApp1"
 mc:Ignorable="d"
 Title="https://www.cnblogs.com/yellow3gold/" Height="60" Width="100">
    <Grid>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1*"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Name="getCheckWord" Visibility="Visible" FontSize="11" Foreground="Black" Text="获取验证码" 
            PreviewMouseLeftButtonDown="getCheckWord_Click"/>
        </Grid>
    </Grid>
</Window>

3.cs代码:

using System;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;

namespace WpfApp1
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private async void getCheckWord_Click(object sender, MouseButtonEventArgs e)
        {
            var Verification_Code = 6;
            var block = sender as TextBlock;
            var text = block.Text.ToString();
            block.IsEnabled = false;
            for (int i = Verification_Code - 1; i >= 0; i--)
            {
                block.Text = "重新获取(" + i + "s)";
                await Task.Delay(TimeSpan.FromSeconds(1));
            }
            block.IsEnabled = true;
            block.Text = text;
        }
    }
}
作者:九年新
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/yellow3gold/p/15069561.html