Silverlight.WebClient下载

System.Net.WebClient 是我们在客户端常用下载对象,image也是sl中出镜率较高的控件
再加上一个MediaElement控件,让我们就此实现一个会动的silverlightLOGO吧~


xaml的组成很简单:

  
  
  
  
  1. <UserControl x:Class="SilverlightApplication1.Page" 
  2.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  3.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
  4.     Width="400" Height="300"
  5.     <Canvas Background="White"
  6.         <MediaElement Width="50" Height="50" AutoPlay="True" x:Name="myMp"/> 
  7.         <Image x:Name="myImage" Width="150" Height="50" Canvas.Left="60" ></Image> 
  8.     </Canvas> 
  9. </UserControl> 

接下来我们将 Image绑定图片:

   
  
  
  
  1. new BitmapImage(new Uri("Properties/microsoft_silverlight_c - Copy.jpg", UriKind.Relative)); 

随后声明WebClient对象和注册委托事件:
webClient.openReadAsync()方法参数
1.位于服务器上的数据源的路径.
2.给与用户一个标识对本次访问服务器.

   
  
  
  
  1. WebClient wc = new WebClient(); 
  2. wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted); 
  3. wc.OpenReadAsync(new Uri("SilverlightLogo.zip", UriKind.Relative), "SilverlightLogo.wmv");  
  4.  
  5.        void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
  6.        { 
  7.            //读取数据完成 
  8.        } 

当下载数据完成后回调openreadcompleted方法

我们可以从参数e中得到有用的数据

   
  
  
  
  1. String sURI = e.UserState as String; 
  2. StreamResourceInfo zipResourceInfo = new StreamResourceInfo(e.Result as Stream, null); 
  3. StreamResourceInfo imageResourceInfo = Application.GetResourceStream(zipResourceInfo, new Uri(sURI, UriKind.RelativeOrAbsolute)); 
  4. myMp.SetSource(imageResourceInfo.Stream); 

就这样我们已将一个会动的silverlightlogo展现给用户了,很简单吧~

Source code: download.

 

你可能感兴趣的:(silverlight)