WPF初探 - 制作一个简单的倒计时器2011-01-22 博客园 royen早上起来后闲的无事,于是想到前些日子学院的某个老师让大家给他找个什么倒计时的小软件,当时大家忙于复习所以也懒得搭理这件事,囧~。既然早上没事干,何不写个玩玩~既然要写,就用以前没怎么捣鼓过的WPF写一个吧,也算是一次学习WPF的初探吧(感觉自己很落后了)!在Vs2008和Vs2010之间徘徊了许久之后,最终还是选择了Vs2008做开发IDE。在Vs2008中建了个WPF工程后,浏览了下默认生成的工程文件结构,一个App.xaml(当然还有App.xaml.cs)和一个Windows1.xaml(Windows1.xaml.cs)。设计界面也和之前的Window Form程序大不一样了,感觉和Flex差不多,还真是有点不怎么习惯哦~好了,开始做个简单的倒计时器了。 先让大家看下运行效果吧,显示在屏幕正中央且置顶显示:

由于比较简单,就三个文件便写完了,分别为界面设计的MainWin.xaml和应用程序类App.xaml 和倒计时处理类ProcessCount.cs类文件。代码分别如下:倒计时处理类ProcessCount.cs :
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace CountDown
7 {
8
9 /// <summary>
10 /// 实现倒计时功能的类
11 /// </summary>
12 public class ProcessCount
13 {
14 private Int32 _TotalSecond;
15 public Int32 TotalSecond
16 {
17 get { return _TotalSecond; }
18 set { _TotalSecond = value; }
19 }
20
21 /// <summary>
22 /// 构造函数
23 /// </summary>
24 public ProcessCount(Int32 totalSecond)
25 {
26 this._TotalSecond = totalSecond;
27 }
28
29 /// <summary>
30 /// 减秒
31 /// </summary>
32 /// <returns></returns>
33 public bool ProcessCountDown()
34 {
35 if (_TotalSecond == 0)
36 return false;
37 else
38 {
39 _TotalSecond--;
40 return true;
41 }
42 }
43
44 /// <summary>
45 /// 获取小时显示值
46 /// </summary>
47 /// <returns></returns>
48 public string GetHour()
49 {
50 return String.Format("{0:D2}", (_TotalSecond / 3600));
51 }
52
53 /// <summary>
54 /// 获取分钟显示值
55 /// </summary>
56 /// <returns></returns>
57 public string GetMinute()
58 {
59 return String.Format("{0:D2}", (_TotalSecond % 3600) / 60);
60 }
61
62 /// <summary>
63 /// 获取秒显示值
64 /// </summary>
65 /// <returns></returns>
66 public string GetSecond()
67 {
68 return String.Format("{0:D2}", _TotalSecond % 60);
69 }
70
71 }
72 }
73