我有一个名为Kinemat.AuthoringTool的silverlight 5项目。在这个项目里面我有一个名为Backgrounds的文件夹,我有一些图像(他们的Build Action是Content)。我想访问图像的流,然后在服务器上上传该图像。在对msdn进行一些研究后,我使用以下代码:
StreamResourceInfo streamResourceInfo = Application.GetResourceStream(new Uri("PathToPutHere"));
Stream imageStream = streamResourceInfo.Stream;
当然使用路径“/ Backgrounds / imageName”不起作用。那么正确的道路是什么?提前谢谢。
答案 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;
}