【问题标题】:Issues loading image from /Assets/ in WPF Application在 WPF 应用程序中从 /Assets/ 加载图像的问题
【发布时间】:2014-03-03 09:46:35
【问题描述】:

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

我可以在我的 .xaml 代码中正常加载文件,如下所示:

<BitmapImage x:Key="Image" UriSource ="/Assets/Submandibular_oedema.jpg" />

我可以在我的页面上显示该图像。但是,当我尝试加载图像并在我的 xaml.cs 代码中使用它时,像这样

uriMyFile = new Uri("/Assets/Submandibular_oedema.jpg", UriKind.RelativeOrAbsolute);

它找不到文件,因此不会让我对 URI 做任何事情。

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

我知道这将是一个愚蠢的小问题,但我找不到任何解决方案。

谢谢!

【问题讨论】:

  • 这是 WP 7/8 应用程序还是 WPF 应用程序?请删除不适合该问题的标签。
  • 为什么不使用 System.IO.StreamReader?
  • 我已更新我的答案以反映您的评论。

标签: c# wpf xaml windows-phone-7 windows-phone-8


【解决方案1】:

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

uriMyFile = new Uri("/YourAssemblyName;component/Assets/Submandibular_oedema.jpg",UriKind.RelativeOrAbsolute);

【讨论】:

    【解决方案2】:

    Starktastics 评论后更新: 我终于明白了你的问题:你需要 Application.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);
    }
    

    我已经更新了解决方案,你可以下载here。

    原答案:

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

    无论如何,您的 URI 语法是正确的。我自己在一个小项目中检查了它,它可以工作。你可以下载它here(DropBox链接)

    随时发表评论。

    【讨论】:

    • 我将其更改为资源,但仍然无法正常工作。我想我有点混淆了我在做什么之后,我需要图像的流,所以我的下一行是'Stream imageStream = App.GetResourceStream(uriMyFile).Stream;'然后我将它保存到一个包含一些代码的文件夹中,我在代码的其他地方使用这些代码没有问题。上面的行调用了“NullReferenceException”,我认为这是由于未成功启动 URI 构建。你觉得这有什么问题吗?
    【解决方案3】:

    尝试使用

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

    这对我有用,同时尝试为每个地方显示不同的地图图标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 2020-12-14
      相关资源
      最近更新 更多