0

URL イメージを格納するためのテーブルを含むデータベースがあります (イメージをバイト配列として格納すると、DB が大幅に遅くなる可能性があるため)。画像テーブルには 2 つのフィールドがあり、1 つは低解像度画像への URL を格納し、もう 1 つは高解像度画像への URL を格納します。これまでのところ、これは単なる概念であり、完全には実装されていません。

私の質問は、データベースの URL を介してこれらの画像をプルバックして Silverlight ビューに表示したい場合、これを行うための最良の方法は何ですか?また、Web 上のどこに画像を保存すればよいですか? - 個人の Web サーバーでは?

これに続いて、画像表示の素晴らしいユーザー エクスペリエンスが必要です。ホバーするとサムネイルがわずかに大きくなり、クリックするとライトボックス表示にズームする可能性があります。

大変助かります。

4

2 に答える 2

0

既存のImagesディレクトリと組織を保持し、それらを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 に答える
0

1 つの方法として、イメージを Silverlight アプリケーションに追加し、相対パスを使用してそれらを参照する方法があります。Build Actionを「Resource」に設定し、 Copy to Output Directoryを「False」に設定します。これにより、画像が Silverlight アプリケーションに埋め込まれます。シンプルさとパフォーマンスには優れていますが、大規模な画像、豊富な画像、または絶えず変化する画像がある場合はそれほど優れていません。

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

もう 1 つの方法は、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 に答える