Loading an image from a compressed package that was retrieved on demand : WebClient « Communication « Silverlight






Loading an image from a compressed package that was retrieved on demand

    
<UserControl x:Class='SilverlightApplication3.MainPage'
    xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' 
    xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
    xmlns:d='http://schemas.microsoft.com/expression/blend/2008' 
    xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006' 
    mc:Ignorable='d' 
    d:DesignWidth='640' 
    d:DesignHeight='480'>

    <Grid x:Name="LayoutRoot" Background="White">
        <StackPanel Orientation="Vertical">
            <Button x:Name="myButton" Content="Get Image" Height="30" Width="90" Click="myButton_Click" />
            <Image x:Name="myImage" />
        </StackPanel>          
    </Grid>
</UserControl>


//File: Page.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

using System.IO;
using System.Windows.Resources;
using System.Windows.Media.Imaging;

namespace SilverlightApplication3
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private void myButton_Click(object sender, RoutedEventArgs e)
        {
            RequestContent();
        }

        private void RequestContent()
        {
            Uri address = new Uri("http://server.com/files.zip");  

            WebClient webClient = new WebClient();
            webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
            webClient.OpenReadAsync(address, "man.png");                            
        }

        void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
        {
            Uri part = new Uri(Convert.ToString(e.UserState), UriKind.Relative);    
            StreamResourceInfo zipStream = new StreamResourceInfo(e.Result as Stream, null);                     
            StreamResourceInfo imageStream = Application.GetResourceStream(zipStream, part);                       

            BitmapImage image = new BitmapImage();                                  
            image.SetSource(imageStream.Stream);                                    
            myImage.Source = image;                                                 
        }
    }
}

   
    
    
    
  








Related examples in the same category

1.Using a WebClient to Download Resources on DemandUsing a WebClient to Download Resources on Demand
2.Load wmv file from in code with WebClient
3.Requesting some string content through the WebClient objectRequesting some string content through the WebClient object
4.Asynchronously requesting binary content using the WebClient classAsynchronously requesting binary content using the WebClient class
5.Use a WebClient to call a JSON web service.Use a WebClient to call a JSON web service.
6.Use Cancel button triggers the cancellation.Use Cancel button triggers the cancellation.