从localhost加载图像不适用于silverlight

时间:2011-03-16 03:54:51

标签: silverlight image silverlight-4.0 localhost

我制作简单的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)
        {
        }
    }

2 个答案:

答案 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是一些例子)。

现在我意识到,这个问题会引发一些跨域策略错误...
无论哪种方式,检查一下,只是为了确定。