Silverlight 2 手把手(之六) 使用故事版实现定时器

Silverlight 2 手把手(之五) 中,我向大家介绍了如何使用 DispatcherTimer 对象实现定时器。下面我将就如何使用 Silverlight 的故事版建立一个定时器。

同样的,我们使用刚才建立的 XAML 文件

image

1. 建立一个 Storyboard myTimer

你可以使用 Blend 或者 Visual Studio 在 XAML 中建立一个空的故事版,需要给的 3 个参数分别是 x:name, Duration 和 Completed 的绑定事件

    1: <UserControl.Resources>
    2:     <Storyboard x:Name="myTimer" Duration="00:00:01" Completed="myTimer_Completed" />
    3: </UserControl.Resources>

2. 写入鼠标左键点击事件

定义按钮的两个状态机的文字以及对故事版的控制

    1: bool myState = true;
    2:  
    3: private void myBtn_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    4: {
    5:     if (myState)
    6:     {
    7:         myBtn.Content = "Stop";
    8:         myTimer.Begin();
    9:     }
   10:     
   11:     else
   12:     {
   13:         myBtn.Content = "Start";
   14:         myTimer.Stop();
   15:     }  
   16:     myState = !myState;
   17: }
   18:        

3. 定义myTimer 的 Completed 事件

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

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