本节讲诉两个新特性:一、在Silverlight 5中可以控制MediaElement对象播放的视频进行快进快退控制。二、在Silverlight 5中的文字项进行搜索查询。

        一、对于MediaElement媒体播放对象的视频进行快退快进控制

        它是通过MediaElement.PlaybackRate属性进行控制的。当前此属性只支持-8.0、-4.0、0.5、1.0、2.0、4.0、 8.0七个参数,也就是快退8倍速、快退4倍速、慢放0.5倍速、正常速度、快进2倍速、快进4倍速、快进8倍速。现在我们看本实例中的 MediaElement对象控制源码如下:

 

  1. //控制播放速度 
  2. int flag=0; 
  3. private void button6_Click(object sender, RoutedEventArgs e) 
  4. if (flag == 0) 
  5. this.showVideo.PlaybackRate = 0.5; 
  6. else if (flag == 1) 
  7. this.showVideo.PlaybackRate = 1.0; 
  8. else if (flag == 2) 
  9. this.showVideo.PlaybackRate = 2.0; 
  10.  
  11. else if (flag == 3) 
  12. this.showVideo.PlaybackRate = 4.0; 
  13.  
  14. else if (flag == 4) 
  15. this.showVideo.PlaybackRate = 8.0; 
  16. flag = 0; 
  17. return
  18. flag++; 

        其效果预览图如下:

        二、TextSearch对象对文字项查询       

        它是在Silverlight 5中新增的一个类TextSearch,在所有的具有Item属性的文字控件中(比如ComboBox,ListBox)设置 TextSearch.TextPath="FirstName"即可。当然FirstName是被绑定源类的一个字段。下面我们来看XAML源码如下:

 

  1. <ListBox ItemsSource="{Binding}" 
  2.        TextSearch.TextPath="FirstName" 
  3.        Width="176" 
  4.        Height="363" 
  5.        HorizontalAlignment="Center" 
  6.        VerticalAlignment="Center" 
  7.        DisplayMemberPath="FirstName" Margin="610,31,214,106" /> 
  8. <ComboBox ItemsSource="{Binding}" 
  9.        TextSearch.TextPath="FirstName" 
  10.        Width="137" 
  11.        Height="30" 
  12.        HorizontalAlignment="Center" 
  13.        VerticalAlignment="Center" 
  14.        DisplayMemberPath="FirstName" Margin="797,31,66,439" /> 

        在cs代码中需要如下绑定:

 

  1. public partial class MainPage : UserControl 
  2. public MainPage() 
  3. InitializeComponent(); 
  4.  
  5. BindListData(); 
  6. private void BindListData() 
  7. DataContext = new List<User>() 
  8. new User() 
  9. FirstName= "liusan"
  10. Age=20 
  11. }, 
  12. new User() 
  13. FirstName= "liyun"
  14. Age=20 
  15. }, 
  16. new User() 
  17. FirstName= "liulin"
  18. Age=20 
  19. }, 
  20. new User() 
  21. FirstName= "mingtian"
  22. Age=20 
  23. }, 
  24. new User() 
  25. FirstName= "jintian"
  26. Age=20 
  27. }, 
  28. new User() 
  29. FirstName= "shanghai"
  30. Age=20 
  31. }, 
  32. new User() 
  33. FirstName= "chengdu"
  34. Age=20 
  35. }, 
  36. new User() 
  37. FirstName= "luntai"
  38. Age=20 
  39. }, 
  40. new User() 
  41. FirstName= "shenming"
  42. Age=20 
  43. }, 
  44. new User() 
  45. FirstName= "edison"
  46. Age=20 
  47. }, 
  48. new User() 
  49. FirstName= "jeson"
  50. Age=20 
  51. }, 
  52. new User() 
  53. FirstName= "jiufen"
  54. Age=20 
  55. }, 
  56. new User() 
  57. FirstName= "jiuding"
  58. Age=20 
  59. }, 
  60. new User() 
  61. FirstName= "shenfenzheng"
  62. Age=20 
  63. }.OrderBy(x => x.FirstName); 
  64.  
  65. public class User 
  66. public String FirstName 
  67. get; 
  68. set
  69. public Int32 Age 
  70. get; 
  71. set

        最后我们在ComboBox或者ListItem取得焦点的时候在键盘上敲英文字符即可自动查找对焦到相应的Item项。本实例采用VS2010+Silverlight 5 beta编写,如需源码请点击 SLTextSearch.zip 下载,现在我们来看运行效果图如下: