C# - 在Silverlight中访问xap内的图像流

时间:2013-07-04 15:33:50

标签: c# silverlight-5.0

我有一个名为Kinemat.AuthoringTool的silverlight 5项目。在这个项目里面我有一个名为Backgrounds的文件夹,我有一些图像(他们的Build Action是Content)。我想访问图像的流,然后在服务器上上传该图像。在对msdn进行一些研究后,我使用以下代码:

StreamResourceInfo streamResourceInfo = Application.GetResourceStream(new Uri("PathToPutHere"));
Stream imageStream = streamResourceInfo.Stream;

当然使用路径“/ Backgrounds / imageName”不起作用。那么正确的道路是什么?提前谢谢。

1 个答案:

答案 0 :(得分:1)

相反,使图像具有Embeded的build属性,并通过包含dll中的名称空间和名称来指向它。我已经为流创建了这样的图像提取器(可以在Silverlight之外使用

public static Stream GetImage(string resourceName)
{
    var assembly = Assembly.GetExecutingAssembly();

    var stream = assembly.GetManifestResourceStream(resourceName);

    if (stream == null)
        throw new ArgumentException(
             $"No resource with name {resourceName} in {assembly.FullName}");

    return stream;
}