Silverlight 2 手把手(之五) 编程实现定时器

在 Silverlight 北京站中,我向大家介绍了在 Silverlight 2 中,你可以使用 Storyboard 实现定时器,你也可以通过 code behind ,应用类似桌面端程序的方法实现定时器 (Timer) 的实现。

下面我就如何通过建立 System.Windows.Threading.DispatcherTimer 对象来实现 Silverlight 2 定时器的方法。

以下是通过使用 DispatcherTimer 对象,实现的 Silverlight 2 计时器。

image

1. 首先在场景中置入一个 <TextBlock /> 和一个 <Button />

   1: <Canvas x:Name="myCon" Height="300" Width="400" >
   2:             <TextBlock x:Name="myText" FontSize="50" Canvas.Left="180" Canvas.Top="40" Text="0"></TextBlock>
   3:         </Canvas>
   4:         <Button x:Name="myBtn" Height="50" Width="100" MouseLeftButtonDown="myBtn_MouseLeftButtonDown"></Button>

2. 声明 Dispatcher 对象 myTimer

DispatcherTimer myTimer = new DispatcherTimer();

3. 在页面加载后声明按钮初始化内容、myTimer 属性

   1: myBtn.Content = "start";
   2: myTimer.Interval = new TimeSpan(0, 0, 0, 1);
   3: myTimer.Tick += new EventHandler(myTimer_Tick);
 
4. 声明布尔变量状态机 myState,实现鼠标左键单击事件
   1: if (myState)
   2:             {
   3:                 myTimer.Start();
   4:                 myBtn.Content = "Stop";
   5:             }
   6:             else
   7:             {
   8:                 myTimer.Stop();
   9:                 myBtn.Content = "Start";
  10:             }
  11:             myState = !myState;

5. 声明 myTimer_Tick 事件

   1: int i = 0;
   2:  
   3: void myTimer_Tick(object sender, EventArgs e)
   4: {
   5:     myText.Text = i++.ToString();
   6: }

这个例子的源码你可以从这里下载:

Published 29 April 08 07:00 by jijia

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
(optional)
(required) 

  
Enter Code Here: Required

Search

This Blog

Syndication

Page view tracker