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

本文关键字:图像 xap 访问 Silverlight C#- | 更新日期: 2023-09-27 18:20:57

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

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

当然,使用路径"/Backgrounds/imageName"是不起作用的。那么正确的路径是什么?

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

相反,使用Embeded的构建属性以及通过包含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;
}