Silverlight中大图片的加载进度

使用System.Windows.Media.Imaging.BitmapImage类的DownloadProgress事件,再配合ProgressBar等控件即可做出进度条效果,下面代码中就只简单的使用TextBlock显示进度

1、MainPage.xaml代码

   1: <Grid x:Name="LayoutRoot" Background="White">
   2:     <Image  x:Name="img"/>
   3:     <TextBlock  Text="正在加载 0%" x:Name="TxtLoading" HorizontalAlignment="Center" Foreground="Black" VerticalAlignment="Center" />
   4: </Grid>

2、MainPage.xaml.cs代码

   1: public partial class MainPage : UserControl
   2: {
   3:     BitmapImage bitmapImage;
   4:  
   5:     public MainPage()
   6:     {
   7:         InitializeComponent();
   8:         this.Loaded += new RoutedEventHandler(MainPage_Loaded);
   9:     }
  10:  
  11:     private void MainPage_Loaded(object sender, RoutedEventArgs e)
  12:     {
  13:         bitmapImage = new BitmapImage();
  14:         img.Source = bitmapImage;
  15:         bitmapImage.UriSource = new Uri("http://192.168.178.222/test.jpg");
  16:         img.Stretch = Stretch.Fill;
  17:         bitmapImage.DownloadProgress += new EventHandler<DownloadProgressEventArgs>(bitmapImage_DownloadProgress);
  18:     }
  19:  
  20:     private void bitmapImage_DownloadProgress(object sender, DownloadProgressEventArgs e)
  21:     {
  22:         TxtLoading.Text = string.Format("正在加载 {0}%", e.Progress);
  23:     }
  24: }
posted @ 2012-04-11 04:44  Mysterious One  阅读(665)  评论(0编辑  收藏  举报