天天看點

Silverlight 5 beta新特性探索系列:9.視訊快進快退和TextSearch對象對文字項查詢

        本節講訴兩個新特性:一、在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對象控制源碼如下:

//控制播放速度 

int flag=0; 

private void button6_Click(object sender, RoutedEventArgs e) 

if (flag == 0) 

this.showVideo.PlaybackRate = 0.5; 

else if (flag == 1) 

this.showVideo.PlaybackRate = 1.0; 

else if (flag == 2) 

this.showVideo.PlaybackRate = 2.0; 

else if (flag == 3) 

this.showVideo.PlaybackRate = 4.0; 

else if (flag == 4) 

this.showVideo.PlaybackRate = 8.0; 

flag = 0; 

return; 

flag++; 

        其效果預覽圖如下:

<a target="_blank" href="http://blog.51cto.com/attachment/201204/214253225.jpg"></a>

        二、TextSearch對象對文字項查詢       

        它是在Silverlight 5中新增的一個類TextSearch,在所有的具有Item屬性的文字控件中(比如ComboBox,ListBox)設定 TextSearch.TextPath="FirstName"即可。當然FirstName是被綁定源類的一個字段。下面我們來看XAML源碼如下:

&lt;ListBox ItemsSource="{Binding}" 

       TextSearch.TextPath="FirstName" 

       Width="176" 

       Height="363" 

       HorizontalAlignment="Center" 

       VerticalAlignment="Center" 

       DisplayMemberPath="FirstName" Margin="610,31,214,106" /&gt; 

&lt;ComboBox ItemsSource="{Binding}" 

       Width="137" 

       Height="30" 

       DisplayMemberPath="FirstName" Margin="797,31,66,439" /&gt; 

        在cs代碼中需要如下綁定:

public partial class MainPage : UserControl 

public MainPage() 

InitializeComponent(); 

BindListData(); 

private void BindListData() 

DataContext = new List&lt;User&gt;() 

new User() 

FirstName= "liusan", 

Age=20 

}, 

FirstName= "liyun", 

FirstName= "liulin", 

FirstName= "mingtian", 

FirstName= "jintian", 

FirstName= "shanghai", 

FirstName= "chengdu", 

FirstName= "luntai", 

FirstName= "shenming", 

FirstName= "edison", 

FirstName= "jeson", 

FirstName= "jiufen", 

FirstName= "jiuding", 

FirstName= "shenfenzheng", 

}.OrderBy(x =&gt; x.FirstName); 

public class User 

public String FirstName 

get; 

set; 

public Int32 Age 

<a target="_blank" href="http://blog.51cto.com/attachment/201204/214156177.jpg"></a>

本文轉自程興亮 51CTO部落格,原文連結:http://blog.51cto.com/chengxingliang/826419

繼續閱讀