Application.GetResourceStream Method (Uri)

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Returns a resource file from a location in the application package.

Namespace:  System.Windows
Assembly:  System.Windows (in System.Windows.dll)

Syntax

'Declaration
Public Shared Function GetResourceStream ( _
    uriResource As Uri _
) As StreamResourceInfo
public static StreamResourceInfo GetResourceStream(
    Uri uriResource
)

Parameters

  • uriResource
    Type: System.Uri
    A relative URI that identifies the resource file to be loaded. The URI is relative to the application package and does not need a leading forward slash.

Return Value

Type: System.Windows.Resources.StreamResourceInfo
A StreamResourceInfo that contains the stream for the desired resource file.

Exceptions

Exception Condition
ArgumentException

The application class is not initialized.

-or-

uriResource is an absolute URI.

ArgumentNullException

uriResource is nulla null reference (Nothing in Visual Basic).

Remarks

The GetResourceStream method allows you to load an arbitrary resource file from one of the following locations:

  • Embedded in the application assembly in the application package.

  • Embedded in a library assembly that is included in the application package.

  • Included in the application package.

Examples

The following code shows how to use GetResourceStream to load an image resource file from these three locations.

Run this sample

<UserControl x:Class="SilverlightApplication.PageShort"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml">

    <StackPanel x:Name="stackPanel" />

</UserControl>
Imports System.Windows.Resources
Imports System.Windows.Media.Imaging

Partial Public Class PageShort
    Inherits UserControl

    Public Sub New()
        InitializeComponent()

        ' Load image resource files included in the application package 
        ' and resources that are embedded in assemblies included in the
        ' application package.

        ' Load an image resource file embedded in the application assembly.
        Dim img1 As Image = LoadImage( _
            "/SilverlightApplication;component/EmbeddedInApplicationAssembly.png")
        Me.stackPanel.Children.Add(img1)

        ' Load an image resource file included the application package.
        Dim img2 As Image = LoadImage("IncludedInApplicationPackage.png")
        Me.stackPanel.Children.Add(img2)

        ' Load an image resource file embedded in a library assembly, 
        ' which is included in the application package.
        Dim img3 As Image = LoadImage( _
            "/SilverlightLibrary;component/EmbeddedInLibraryAssembly.png")
        Me.stackPanel.Children.Add(img3)

    End Sub

    Public Function LoadImage(ByVal relativeUriString As String) As Image

        ' Get the image stream at the specified URI that
        ' is relative to the application package root.
        Dim uri As New Uri(relativeUriString, UriKind.Relative)
        Dim sri As StreamResourceInfo = Application.GetResourceStream(uri)

        ' Convert the stream to an Image object.
        Dim bi As New BitmapImage()
        bi.SetSource(sri.Stream)
        Dim img As New Image()
        img.Source = bi

        Return img

    End Function

End Class
using System; // Uri
using System.IO; // Stream
using System.Windows; // Application
using System.Windows.Controls; // TextBlock, Image
using System.Windows.Media.Imaging; // BitmapImage
using System.Windows.Resources; // StreamResourceInfo

namespace SilverlightApplication
{
    public partial class PageShort : UserControl
    {
        public PageShort()
        {
            InitializeComponent();

            // Load image resource files included in the application package 
            // and resources that are embedded in assemblies included in the
            // application package.

            // Load an image resource file embedded in the application assembly.
            Image img1 = LoadImage(
                "/SilverlightApplication;component/EmbeddedInApplicationAssembly.png");
            this.stackPanel.Children.Add(img1);

            // Load an image resource file included the application package.
            Image img2 = LoadImage("IncludedInApplicationPackage.png");
            this.stackPanel.Children.Add(img2);

            // Load an image resource file embedded in a library assembly, 
            // which is included in the application package.
            Image img3 = LoadImage(
                "/SilverlightLibrary;component/EmbeddedInLibraryAssembly.png");
            this.stackPanel.Children.Add(img3);
        }

        public Image LoadImage(string relativeUriString)
        {
            // Get the image stream at the specified URI that
            // is relative to the application package root.
            Uri uri = new Uri(relativeUriString, UriKind.Relative);
            StreamResourceInfo sri = Application.GetResourceStream(uri);

            // Convert the stream to an Image object.
            BitmapImage bi = new BitmapImage();
            bi.SetSource(sri.Stream);
            Image img = new Image();
            img.Source = bi;

            return img;
        }
    }
}

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.