【问题标题】:Silveright image source on web not showing anything网络上的 Silveright 图像源没有显示任何内容
【发布时间】:2010-01-01 20:01:50
【问题描述】:

我确信这是一个简单的新手问题,但我现在还没有找到答案。

我在 Silverlight 3 中编译了以下控件:

<UserControl x:Class="SLImageTest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
  <StackPanel>
        <Image Source="http://farm3.static.flickr.com/2733/4102919659_0207842bde_m.jpg" />
    </StackPanel>
</UserControl>

图片来源不重要,但你可以验证

当我运行控件时,我没有显示图像。因此,尽管我付出了努力,但还是出现了问题。出了什么问题?

但是没有调试输出,因为应该有绑定错误,没有抛出异常,没有任何迹象表明任何失败!这是为什么呢?

类似这样的代码在 WPF 中运行良好。

如果我将图像包含到项目中,然后做

<Image Source="kitten1.jpg" />

效果很好。但这不是我想要的。

【问题讨论】:

    标签: silverlight http image url


    【解决方案1】:

    我的猜测是您是从 file:// URL 而不是 http:// URL 运行它的。查看浏览器地址栏中的 URL 以确定是否属实。 这是一个跨协议访问问题。简单的解决方案是从 Visual Studio 或 Expression Blend 中的内置 Web 服务器尝试它。从 Visual Studio 调试您的应用程序或从 Blend 运行它,您会看到它有一个 http://localhost URL。

    【讨论】:

    • 图片的 URL 是给定的,一个 http: url。 Silverlight 控件从 file:///C:/ url 运行。我尝试了一个使用网页托管 Silverlight 控件的新项目,将其放在 localhost: url 上,现在它工作正常。那么为什么这会产生影响,错误信息又在哪里呢?
    • 它确实有所作为 - 作为跨协议访问冲突。 file:// 无法访问 http:// 和 http:// 无法访问 file:// Silverlight 旨在从 Web 运行,因此如果将应用程序发布到 Web 服务器,它将按预期工作。简单的做法是从系统上运行的 IIS 或 Blend 和 Visual Studio 附带的 Web 服务器对其进行测试。
    • 这似乎是正确的。为什么没有调试或错误信息?不提供任何东西是很糟糕的。
    • Flash 具有相同的安全模型。基本论点是您不想要具有完全本地权限的文件,然后能够告诉互联网任何事情。 (例如,黑客编写代码来扫描您的文档目录,并将找到的所有内容上传到互联网)。这是我使用本地网络服务器和虚拟主机进行所有开发的众多原因之一。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多