我制作简单的silverlight应用程序。
我需要访问并使用localhost中的图像,
我写下我的代码
Book4.Source = new BitmapImage(new Uri(“http://localhost/test/book2.png”,UriKind.Absolute));
它不会出现任何错误,但它无法加载任何图像。
// P.S。我没有使用asp。这是OOB应用程序。
*已编辑:要包含问题的其他内容。
public void changeValue_book()
{
if (empty_book[3] == true && book_index == 3)
{
empty_book[3] = false;
Book4.Visibility = Visibility.Visible;
Book3.Visibility = Visibility.Visible;
Book3.Source = null;
Book3.Source = new BitmapImage(new Uri("http://localhost/test/book1.png", UriKind.Absolute));
//Book3.Source = new BitmapImage(new Uri("Resource/책1.png", UriKind.Relative));
}
else if (empty_book[4] == true && book_index == 4)
{
empty_book[4] = false;
Book5.Visibility = Visibility.Visible;
Book4.Visibility = Visibility.Visible;
Book4.Source = new BitmapImage(new Uri("http://localhost/test/book2.png", UriKind.Absolute));
}
else if (empty_book[5] == true && book_index == 5)
{
}
}
答案 0 :(得分:0)
如果您在导航到http://localhost/test/book2.png时能够从网络浏览器访问预期的图像,请尝试以下操作:
Uri uri = new Uri("http://localhost/test/book2.png", UriKind.Absolute);
ImageSource imageSource = new BitmapImage(uri);
Book4.Source = imageSource;
<强> EDITED 强>
如果您的图片位于http://localhost/test/yourimagename.png,但您的Silverlight应用程序托管在 https:// 或文件系统中,则您不会能够加载图像。用于渐进式下载的Silverlight Image类和MediaElement类(媒体,图像,ASX等)不允许跨程序访问。
请参阅此链接了解更多详情:
http://msdn.microsoft.com/en-us/library/cc189008(v=vs.95).aspx
答案 1 :(得分:0)
也许是clientaccesspolicy.xml问题。当加载SL的站点的地址与要从中下载数据的地址不同时,它可以被阻止。该clientaccesspolicy.xml文件还必须指定SL可以更深入地进入子目录。 (here是一些例子)。
现在我意识到,这个问题会引发一些跨域策略错误...
无论哪种方式,检查一下,只是为了确定。