c#实现倒计时程序

 

概述

  主要利用DispatcherTimer来实现定时更新数据,并在一定条件下切换两张图像实现动态效果。   注意:为了及时响应性,需要将定时器的属性设置高级一点。 

private DispatcherTimer dispatcher = new DispatcherTimer(DispatcherPriority.DataBind); 成员变量

存储目标时间,两张图像资源并在构造函数中完成对象构造,以及定时器的属性设置。

private DateTime orgTime = new DateTime(2050, 5, 20, 00, 00, 0); private DispatcherTimer dispatcher = new DispatcherTimer(DispatcherPriority.DataBind); private BitmapImage bitmap1; private BitmapImage bitmap2;  构造函数中初始化对象 public MainWindow() { InitializeComponent(); bitmap1 = new BitmapImage(new Uri("pack://application:,,,/Images/001.jpg")); bitmap2 = new BitmapImage(new Uri("pack://application:,,,/Images/002.jpg")); dispatcher.Interval = TimeSpan.FromMilliseconds(500); dispatcher.Tick += Dispatcher_Tick; } 定时器功能函数

完成时间计算以及数据显示和图像切换

private void Dispatcher_Tick(object sender, EventArgs e) { var time = DateTime.Now; var tt = orgTime - time; int day = tt.Days > 0 ? tt.Days : 0; int hours = tt.Hours > 0 ? tt.Hours : 0; int mit = tt.Minutes > 0 ? tt.Minutes : 0; int sec = tt.Seconds > 0 ? tt.Seconds : 0; this.countTimeInfo.Content = string.Format("{0}天{1}小时{2}分{3:D2}秒", day, hours, mit, sec); this.curTimeInfo.Content = time.ToString(); i++; if (i >= 4) { if (isFrist) { imageBrush.ImageSource = bitmap1; isFrist = false; } else { imageBrush.ImageSource = bitmap2; isFrist = true; } i = 0; } } 开启和关闭定时器

打开定时器在窗体的加载事件中,关闭定时器在窗体的关闭事件中。

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { dispatcher.Stop(); } private void Window_Loaded(object sender, RoutedEventArgs e) { dispatcher.Start(); } 主界面设计

本程序是基于WPF构建。

当前时间: 计时还剩: 效果展示

 


比丘资源网 » c#实现倒计时程序

发表回复

提供最优质的资源集合

立即查看 了解详情