我正在尝试在Silverlight应用程序中显示图像,但运行应用程序时图像不会显示。在Visual Studio中创建项目时,我选择“自动生成测试页面以在构建时托管Silverlight”选项。
以完整代码为例:
<UserControl x:Class="SilverlightApplication3.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300">
<StackPanel>
<Image Source="http://www.beachtownpress.com/db5/00415/beachtownpress.com/_uimages/beach7.jpg" />
</StackPanel>
</UserControl>
应用程序在Visual Studio中完美显示,但是当我运行应用程序时,图像不会显示。有什么想法吗?
答案 0 :(得分:1)
嗯...
看看这个文档:
http://msdn.microsoft.com/en-us/library/system.windows.controls.image.source(VS.95).aspx
我认为主要问题是您正在进行跨域调用,只是建议:下载fiddler,在那里您将检查您请求数据的服务器是否允许跨域调用(只需试一试,加载一个来自flckr的图片,看看会发生什么。)
一种解决方案,可能是在服务器端使用隧道(您域上的自定义http hanlder,从远程服务器获取图像并将其重定向到您的SL请求)。
HTH 布劳略
答案 1 :(得分:0)
答案 2 :(得分:0)
虽然Image控件允许跨域URL访问,但不允许跨程序访问。当使用自动生成的测试页面运行时,它将从本地驱动器运行(我猜这将间接在FILE协议下运行),因此不允许交叉方案到HTTP协议。您应该做的是让包含Silverlight控件的页面在http://localhost
下运行,这应该可以解决问题。
参考:URL Access Restrictions in Silverlight
或者,在您的Silverlight项目(而不是Web项目)属性中,在“调试”窗格中,选择将其作为OOB应用程序运行以进行测试
答案 3 :(得分:0)
这是一个真正的表演塞!!! 如果在webservice的web服务器上安装一些愚蠢的文件,至少仍然可以进行webservice调用。也许这有帮助:在Web服务器上安装clientaccesspolicy.xml以获取图像。 http://msdn.microsoft.com/en-us/library/cc645032%28VS.95%29.aspx