如何从C#中的相对URL获取图像,图像不能在项目中

时间:2010-04-26 11:32:53

标签: c# xml url imagesource

我有一个项目,我从xml文件加载相对图像Uri。 我正在加载这样的图像:

if (child.Name == "photo" &&
    child.Attributes["href"] != null &&
    File.Exists(child.Attributes["href"].Value))
{
    Image image = new Image();
    image.Source = new BitmapImage(new Uri(child.Attributes["href"].Value, UriKind.RelativeOrAbsolute));
    images.Add(image);
}

“child”对象是一个看起来像这个

的XmlNode
<photo name="info" href="Resources\Content\test.png"/>

在调试过程中,似乎图像中充满了实际图像,但是当我想以任何方式看到图像时,它都没有显示任何内容。 奇怪的是当我在我的项目中包含图像它确实有效时,我不想这样做,因为我使用xml文件的意义是因为你必须在改变之后重建程序而丢失它

2 个答案:

答案 0 :(得分:1)

不是完美的解决方案,但它的作品仍然是,我正在将相对的Uri转换为绝对的这样的

if (child.Name == "photo" &&
    child.Attributes["href"] != null &&
    File.Exists(Environment.CurrentDirectory + child.Attributes["href"].Value))
{
    Image image = new Image();
    image.Source = new BitmapImage(new Uri(Environment.CurrentDirectory + child.Attributes["href"].Value, UriKind.RelativeOrAbsolute));
    images.Add(image);
}

只需更改xml中的所有Uri即可获得前导斜杠。

答案 1 :(得分:0)

嗯可以是这个简单的当前文件夹问题。 VS检查项目/ Resources / Content /文件夹下的资源,并检查项目/ bin / Debug / Resources / Content /文件夹下的资源。