Silverlight 2 手把手(之五) 编程实现定时器
在 Silverlight 北京站中,我向大家介绍了在 Silverlight 2 中,你可以使用 Storyboard 实现定时器,你也可以通过 code behind ,应用类似桌面端程序的方法实现定时器 (Timer) 的实现。
下面我就如何通过建立 System.Windows.Threading.DispatcherTimer 对象来实现 Silverlight 2 定时器的方法。
以下是通过使用 DispatcherTimer 对象,实现的 Silverlight 2 计时器。
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: }
这个例子的源码你可以从这里下载: