MSDN Library
信息
您所需的主题如下所示。但此主题未包含在此库中。

Application.GetResourceStream 方法 (Uri)

2013/12/13

从应用程序包中的某个位置返回资源文件。

Namespace:  System.Windows
程序集:  System.Windows(位于 System.Windows.dll 中)

public static StreamResourceInfo GetResourceStream(
	Uri uriResource
)

参数

uriResource
类型: System.Uri
标识要加载的资源文件的相对 URI。如果文件具有 ContentBuild Action,则该 URI 相对于应用程序包,并且您不应使用前导正斜杠。如果文件具有 ResourceBuild Action,您可以使用前导正斜杠,但这不是必需的。

返回值

类型: System.Windows.Resources.StreamResourceInfo
包含所需资源文件的流的 StreamResourceInfo 或如果无法找到指定的资源,则为 null

异常条件
ArgumentException

未初始化应用程序类。

- 或 -

uriResource 为绝对 URI。

ArgumentNullException

uriResourcenull

GetResourceStream 方法允许您加载 ContentResource 已设置为 Build Action 属性值的资源文件。下表列出了可使用 GetResourceStream 加载的文件类型:

文件位置

生成操作

说明和 URI 示例

嵌入在应用程序包的应用程序程序集中

资源

您可以使用前导正斜杠,但这不是必需的。

/Application;component/EmbeddedInApplicationAssembly.png

包括在应用程序包中

Content

您不应使用前导正斜杠。

IncludedInApplicationPackage.png

出于性能方面的考虑,如果可能,您应将资源的 Build Action 设为 Content,然后相应地加载它们。

下面的代码演示如何使用 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

显示:
© 2016 Microsoft