0

我有一个数据库,其中包含一个用于存储 URL 图像的表(因为将图像存储为字节数组可能会大大降低数据库的速度)。图像表中有两个字段,一个存储低分辨率图像的 URL,另一个存储高分辨率图像的 URL。到目前为止,这只是一个概念,还没有完全实施。

我的问题是,如果我想通过数据库 URL 拉回这些图像以显示在 Silverlight 视图中,那么执行此操作的最佳方法是什么以及我应该在网络上的哪个位置存储图像?- 在个人网络服务器上?

在此之后,我想要一个很棒的图像显示用户体验。可能是一个缩略图,当悬停在上面时会略微增长,当点击时会放大到一点灯箱显示。

非常感谢帮助。

4

2 回答 2

0

一种方法是将图像添加到 Silverlight 应用程序,然后使用相对路径引用它们。将构建操作设置为“资源”并将复制到输出目录设置为“假”。这会将图像嵌入到您的 Silverlight 应用程序中。非常适合简单性和性能,但如果您有大型、丰富或不断变化的图像,则不是那么好。

<Image Source="Images/LoRes/10001.JPG" />

另一种方法是将图像部署到托管 XAP 文件的同一 Web 服务器。使用这种方法,您仍然可以通过相对路径引用图像,只是现在该路径是相对于 XAP,而不是应用程序根文件夹。

<Image Source="../Images/LoRes/10001.JPG" />

Silverlight 还支持绝对 URL,因此您可以根据需要完全部署到不同的 Web 服务器

<Image Source="http://myimages.com/Images/LoRes/10001.JPG" />

如果数据库只有图像名称,而您正在进行数据绑定,则可以编写一个转换器来获取图像名称并得出相对或绝对超链接。

Image 类的MSDN 文档有更多信息。

于 2009-09-08T17:30:30.960 回答
0

允许您保留任何现有图像目录和组织并将它们排除在 XAP 之外的最快方法。

 string src = Application.Current.Host.Source.ToString();
 string applicationRoot = src.Substring(0, src.IndexOf("ClientBin"));
 //Where CLientBin is the location of your XAP file
 string imageURL = applicationRoot + "Images/MyImage.jpg"
于 2009-09-08T17:38:51.040 回答