2009-09-08 54 views
0

我有一個數據庫,其中包含一個用於存儲URL圖像的表(因爲將圖像存儲爲字節數組可能會大大減慢數據庫的大小)。圖像表中有兩個字段,一個用於存儲低分辨率圖像的URL,另一個用於存儲高分辨率圖像的URL。到目前爲止,這只是一個概念,尚未完全實施。Silverlight用戶體驗URL圖像顯示?

我的問題是,如果我想要通過數據庫URL撤回這些圖像以顯示在Silverlight視圖中,那麼執行此操作的最佳方法是什麼以及Web上應存儲哪些圖像? - 在個人網絡服務器上?

接下來我想要一個真棒用戶體驗的圖像顯示。潛在的一個縮略圖,當它懸停時略有增加,當點擊放大到一個位的燈箱顯示。

非常感謝。

+0

請問你編輯過什麼?我總是看到這一點,永遠不知道已經改變了什麼... – Goober 2009-09-09 16:41:08

+0

點擊「編輯」後的日期以查看更改。 – 2009-12-13 05:01:55

回答

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" 
0

一種方法是將圖像添加到您的Silverlight應用程序,然後使用相對路徑引用它們。將構建動作設置爲「Resource」,並將複製到輸出目錄爲「False」。這會將圖像嵌入到Silverlight應用程序中。非常適合簡單和性能,但如果您擁有大量的,充足的或不斷變化的圖像,則效果並不好。

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

另一種方法是圖像部署到同一個Web服務器承載您的XAP文件。使用這種方法,您仍然可以通過相對路徑來引用圖像,只有現在路徑相對於XAP而不是應用程序根文件夾。

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

的Silverlight還支持絕對URL所以如果你喜歡,你可以部署到不同的網絡服務器完全。

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

如果數據庫只有形象的名字,和你正在做數據綁定,你可以寫一個轉換器把圖像名稱,並拿出相對或絕對超鏈接。

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