C# 从WPF应用程序中的/Assets/加载图像时出现问题

C# 从WPF应用程序中的/Assets/加载图像时出现问题,c#,wpf,xaml,windows-phone-7,windows-phone-8,C#,Wpf,Xaml,Windows Phone 7,Windows Phone 8,我在尝试将文件实际加载到我的项目中以保存到本地文件夹时遇到了一些非常奇怪的问题 我可以在.xaml代码中很好地加载该文件,如下所示: <BitmapImage x:Key="Image" UriSource ="/Assets/Submandibular_oedema.jpg" /> 它找不到文件,因此不允许我对URI做任何事情 对于背景,我的目标是获取图像流,然后将其保存到本地文件夹 我知道这是个愚蠢的小问题,但我找不到任何解决办法 谢谢 Starktastics评论后更新: 我

我在尝试将文件实际加载到我的项目中以保存到本地文件夹时遇到了一些非常奇怪的问题

我可以在.xaml代码中很好地加载该文件,如下所示:

<BitmapImage x:Key="Image" UriSource ="/Assets/Submandibular_oedema.jpg" />
它找不到文件,因此不允许我对URI做任何事情

对于背景,我的目标是获取图像流,然后将其保存到本地文件夹

我知道这是个愚蠢的小问题,但我找不到任何解决办法


谢谢

Starktastics评论后更新: 我终于理解了您的问题:您需要
应用程序.GetResourceStream
方法来检索资源流,从该流读取并将其写入文件流

var streamResourceInfo = Application.GetResourceStream(uri);
var stream = streamResourceInfo.Stream;
var byteBuffer = new byte[stream.Length];
using (stream)
{
    stream.Read(byteBuffer, 0, byteBuffer.Length);
}
using (var fileStream = new FileStream("photo.jpg", FileMode.Create))
{
    fileStream.Write(byteBuffer, 0, byteBuffer.Length);
}
我已经更新了您可以下载的解决方案

原始答案:

如果使用WPF应用程序,请确保添加到项目中的资产是构建操作“资源”。单击文件后,可以在“属性”窗格中进行检查

在任何情况下,URI的语法都是正确的。我自己在一个小项目中检查了它,它成功了。您可以下载它(DropBox链接)

请随意留言。

尝试完整路径(指定项目程序集)

尝试使用

uriMyFile=new Uri("ms-appx:///Assets/YourImage.png"));

当我试图为每个地方显示不同的地图图标时,这对我来说是有效的。

这是WP 7/8应用程序还是WPF应用程序?请删除不适合此问题的标记。为什么不使用System.IO.StreamReader?我已更新我的答案以反映您的评论。我已将其更改为Resource,但仍然无法工作。我想我有点搞不清楚我在用它做什么,我需要图像的流,所以我的下一行是'Stream imageStream=App.GetResourceStream(uriMyFile.Stream;'然后我将其保存到一个文件夹中,其中包含一些代码,我在代码的其他地方使用这些代码时不会出现问题。上面的一行正在调用一个“NullReferenceException”,我认为这是由于URI没有被成功地构建和启动。你觉得这有什么问题吗?
uriMyFile = new Uri("/YourAssemblyName;component/Assets/Submandibular_oedema.jpg",UriKind.RelativeOrAbsolute);
uriMyFile=new Uri("ms-appx:///Assets/YourImage.png"));