.NET Framework Class Library for Silverlight
Application.GetResourceStream Method (Uri)
Returns a resource file from a location in the application package.
Namespace: System.Windows
Assembly: System.Windows (in System.Windows.dll)
Syntax
Visual Basic (Declaration)
Public Shared Function GetResourceStream ( _ uriResource As Uri _ ) As StreamResourceInfo
C#
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.StreamResourceInfoA 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 null. |
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.
XAML
<UserControl x:Class="SilverlightApplication.PageShort" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <StackPanel x:Name="stackPanel" /> </UserControl>
Visual Basic
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
C#
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, 3Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
See Also