정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Application.GetResourceStream 메서드 (Uri)

2013-12-13

응용프로그램 패키지의 위치에서 리소스 파일을 반환합니다.

Namespace:  System.Windows
어셈블리:  System.Windows(System.Windows.dll)

public static StreamResourceInfo GetResourceStream(
	Uri uriResource
)

매개 변수

uriResource
형식: System.Uri
로드할 리소스 파일을 식별하는 상대 URI입니다. 파일의 빌드 작업콘텐츠인 경우 URI는 응용프로그램 패키지에 상대적이며 앞에 슬래시를 붙일 필요가 없습니다. 파일의 빌드 작업리소스이면 앞에 슬래시를 붙여도 되지만 꼭 필요한 것은 아닙니다.

반환 값

형식: System.Windows.Resources.StreamResourceInfo
원하는 리소스 파일에 대한 스트림을 포함하는 StreamResourceInfo이거나, 지정된 리소스를 찾을 수 없는 경우 null입니다.

예외조건
ArgumentException

응용프로그램 클래스가 초기화되지 않은 경우

-또는-

uriResource가 절대 URI인 경우

ArgumentNullException

uriResourcenull인 경우

GetResourceStream 메서드를 사용하면 Content 또는 ResourceBuild Action 속성 값으로 설정된 리소스 파일을 로드할 수 있습니다. 다음 표에서는 GetResourceStream을 사용하여 로드할 수 있는 파일 형식을 보여 줍니다.

파일 위치

빌드 작업

참고 사항 및 URI 예

응용프로그램 패키지의 응용프로그램 어셈블리에 포함

Resource

선행 슬래시를 사용할 수 있지만 필수는 아닙니다.

/Application;component/EmbeddedInApplicationAssembly.png

응용프로그램 패키지에 포함

Content

선행 슬래시를 사용하면 안 됩니다.

IncludedInApplicationPackage.png

가능한 경우 성능을 위해 리소스의 Build ActionContent로 설정하고 적절하게 로드해야 합니다.

다음 코드에서는 GetResourceStream을 사용하여 이러한 두 위치에서 이미지 리소스 파일을 로드하는 방법을 보여 줍니다.


<!--ContentPanel - place additional content here-->
<StackPanel x:Name="stackPanel" Grid.Row="1"/>



using Microsoft.Phone.Controls;
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 PhoneApp1
{
    public partial class MainPage : PhoneApplicationPage
    {
        public MainPage()
        {
            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(
                "/PhoneApp1;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);

        }

        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;
        }
    }
}


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시: