繁体   English   中英

Silverlight:没有文件扩展名的图像源不显示

[英]Silverlight: Image Source with no file extension doesn`t display

在我的Silverlight项目中,源URI不包含文件扩展名的图像不会显示,尽管文档说它应该显示。

我像这样设置图像源:

imgCompanyLogo.Source = new BitmapImage(new Uri(Application.Current.Host.Source, "/Files/" + logoName));

现在,如果“logoName”包含文件扩展名(例如“.png”),则图像显示正常,但如果文件是在没有扩展名的情况下存储则不会。

这似乎与此处的文档相矛盾:

“格式特定的文件扩展名(如.png)不一定要在URI命名中,但如果检索到的文件未被确定为有效的图像格式,则会抛出运行时异常。”

我也没有得到任何运行时异常。 这是一个已知问题还是我错过了一些简单的事情?

谢谢!

PS:稍微扭曲,图像在调试时显示正常,而不是在系统部署时......

我做了一些测试,问题似乎是由于服务器的响应。

如果您尝试在项目中使用.png并将Build Action设置为Resource,则无论扩展名如何,都会加载这两个图像。

现在,如果您尝试使用托管在服务器上的图像,它将不会具有相同的行为。 实际上,如果您尝试在浏览器中直接浏览没有扩展名的图像链接,则会产生其他内容。 在Chrome上它将下载该文件,在IE上它将显示结果为纯文本。

这是因为MIME类型。 应返回类型为image \\ png的png。

设置MIME类型的.htaccess有一个技巧,但您需要指定哪个扩展名。 它的工作原理如下:

AddType image \\ png yourExtension [Extension2] [Extension3] ..

如果您想查看图像控件上没有加载图像的原因,可以在ImageFailed事件中添加一个事件处理程序:

<Image Source="..." ImageFailed="Image_ImageFailed" />

但是您将看到的错误消息并不真正有用:

ErrorException = {System.Exception:AG_E_NETWORK_ERROR}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM