Silverlight中的图像问题

时间:2011-05-20 08:24:53

标签: c# silverlight image

问候

问题

当我尝试将图像添加到我的silverlight项目时,我收到错误:"AG_E_NETWORK_ERROR"

重新创建

我创建了一个没有Web部件的新Silverlight 4项目。所以我只得到MyApplication。

在MyApplication中,我添加了一个名为“Images”的地图,在该地图中我添加了一些图像。 Egg.png,Chicken.png。

现在我希望将这些图像加载到我的silverlight项目中。在mainpage.xaml我放置:  <Image Source="/Images/Egg.png" />但这不会加载。

所以我从代码背后尝试:

var imag = new BitmapImage(new Uri(@"\Images\Egg.png", UriKind.Relative));
imag.ImageFailed += (s, ea) =>
{
    throw new Exception(ea.ErrorException.Message);
};

然而,这仍然会引发上述错误,而不是我尝试的错误。

图像被设置为资源并且“不要复制”。

  1. 我做错了什么?
  2. 如何使图像有效?
  3. [编辑]

    评论后,我注意到图像正在原始项目中加载。

    但我在一个不同的项目中有一个用户控件,我发送图像。从那里加载仍然失败。

    我该如何解决这个问题? 我错过了什么吗?

2 个答案:

答案 0 :(得分:2)

这是一个可怕的通用错误消息,但我认为问题可能只是无法找到文件。当您向Silverlight项目添加项目时,它们不会被复制到托管站点的ClientBin文件夹中(即使在构建时,无论Copy to output directory设置如何,因为这仅指示了当前的内容是什么project的bin文件夹) - 您需要手动复制这些文件(或最终使用构建后的步骤),即:

  • 自己将所需资源从Silverlight项目复制到托管网站的ClientBin文件夹以及.xap文件。

<强>更新

那么,解决方案中没有网站部分,是否有资源进入Silverlight项目本身的bin文件夹?如果没有,试试这个:

  • 将图片BuildAction设置为Content
  • Copy to output directory设为Copy AlwaysCopy if newer

答案 1 :(得分:0)

解析XAML时:

<Image Source="/Images/Egg.png" />

将URI转换为适合查找图像的URI。如果您在代码隐藏中设置源代码,则必须自己进行此转换。 URI的格式为:

/MyNameSpace;Images/Egg.png

请参阅此相关问题:

How do you set Image.Source in Silverlight(Code behind)