2016-04-15 5 views
0

私は、ユニバーサルWindows Phoneアプリケーションでプログラムに到達しようとする一連のイメージをオンラインで保存しています。 選択したパラメータにイメージが存在するかどうかを調べる方法はありますか?そうでない場合は、代わりにイメージプレースホルダを使用しますか?URLにイメージUWPが含まれているかどうかを確認します

var img = new BitmapImage(new Uri("url?ID_IMMAGINE=" + idImg1 + "&HEIGHT=100", UriKind.Absolute)) 

これはイメージの取得方法です。

答えて

2

あなたはURIのフォールバック値を設定するImageFailedイベントにハンドラをアタッチできます

var defaultImageUri = new Uri("ms-appx:///Assets/DefaultImage.png"); 
var bitmap = new BitmapImage(); 
bitmap.ImageFailed += (s, e) => bitmap.UriSource = defaultImageUri; 
bitmap.UriSource = new Uri(...); 
+0

を通過してください方法

 try { var img = new BitmapImage(new Uri("url?ID_IMMAGINE=" + idImg1 + "&HEIGHT=100", UriKind.Absolute)); if (img == null) { img = new BitmapImage(new Uri("defaultImage.png",UriKind.RelativeOrAbsolute)); } } catch { img = new BitmapImage(new Uri("defaultImage.png", UriKind.RelativeOrAbsolute)); } 

を変換するために与えられるカント..あなたに感謝します! – Janinho67

+0

これを使用しようとすると、次の例外が発生します。 アプリケーションは、別のスレッド用にマーシャリングされたインターフェイスを呼び出しました。 (hresultからの例外:0x8001010e(rpc_e_wrong_thread))...これをどのように修正できるか知っていますか? BitmapImage()の新しいインスタンスを作成しようとしているときに例外がスローされます。 –

+0

@Zure Betterは、コメントを尋ねる代わりに通常のStackOverflow質問をします。 – Clemens

0

あなたは変換のための非同期を使用傾けます。非同期メソッドの戻り型はvoid,Task,Task<T>でなければなりません。それはあなたが本当にコンバーターを使用したい場合は、私が必要なまさにこのStackoverflow link

+0

「新しいBitmapImage(...)」は、イメージをダウンロードできないときにnullも返さず、例外もスローしません。 – Clemens

+0

指定されたURLが存在しない場合、例外がスローされます。 – Archana

+0

いいえ、そうではありません。試してみてください。 – Clemens

関連する問題