Silverlight用户体验URL图像显示?

时间:2009-09-08 15:04:56

标签: silverlight user-experience

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

我的问题是,如果我想通过数据库URL撤回这些图像以显示在Silverlight视图中,那么最好的方法是什么?我应该在网上存储图像? - 在个人网络服务器上?

在此之后,我想要一个非常棒的图像显示用户体验。潜在的缩略图,当盘旋时略微增长,当点击放大到点灯箱显示时。

非常感谢。

2 个答案:

答案 0 :(得分:0)

一种方法是将图像添加到Silverlight应用程序,然后使用相对路径引用它们。将 Build Action 设置为“Resource”,将 Copy to Output Directory 设置为“False”。这会将图像嵌入到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" />

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

MSDN documentation for the Image class有更多信息。

答案 1 :(得分: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"