2011-07-01 4 views
0

コントロールテンプレートに画像を表示するページがあります。このため私は表示するにはイメージ名を取得するだけです。私はすべての画像を見ることができないですいくつかの理由についてコンバーターを使用してSilverlightでImageのsourceプロパティを設定する

Image Source="{Binding ThumbNail,Converter={StaticResource MapImagePath}}"/> 

:XAMLで

return new BitmapImage(new Uri(value.ToString(), UriKind.RelativeOrAbsolute)); 

は私が持っているバインディング:だから私はこのようなのBitmapImageを返すために、コンバータを使用しています。

画像の拡張子を.jpegに変更しましたが、まだ動作しません。

私は何か間違っているか、私が間違っていると私に示唆していますか?おかげさまで

+0

イメージはプロジェクトでリソースとして構築されていますか? – anivas

+0

私のプロジェクトのリソースはどういう意味ですか?しかし、私はXAMlページにドラッグアンドドロップしました。 – user695663

+0

ビルドアクションがリソース – anivas

答えて

1

BitmapImageのインスタンスを返すようにコンバータを変更します。コンバータは現在文字列またはUriを返していますが、Sourceプロパティの実際のタイプはImageSourceです。

文字列をBitmapImageに変換することは、XamlParserが行う魔法ですが、Converterを使用して値を指定するときは、正しい型を指定する必要があります。

+0

BitMapImageインスタンスを再実行するように変更した後でも、動作していません – user695663

0

ImageFailedイベントを使用して、イメージのロード中に例外がスローされていないかどうかを調べることができます。通常、インターネットから画像を読み込む際にネットワークに問題がある場合、AG_E_NETWORK_ERRORを取得します。

Silverlightアプリケーションを組み込みのWebサーバーを使用してVisual Studio 2010の既定のファイルシステムから実行しているときに、この問題が発生しました。私は、ホスティングWebアプリケーションをローカルのIISサーバーに移動して、イメージを表示しました。

0
  1. まず、コンテンツにあなたのイメージのプロパティを変更します。[右あなたのイメージにクリックし、コンテンツ

  2. へのリソースからプロパティと変更ビルドアクションに行く今、私たちは「/リソース/画像/ 1にあるとし.png "ファイル。

次のようなコードをコンバータに記述します。

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
{ 
    BitmapImage bitmap = new BitmapImage(); 
    Uri uri = new Uri(@"Resources/Images/1.png", UriKind.Relative); 
    bitmap .SetSource(Application.GetResourceStream(uri).Stream); 
    return bitmap ; 
} 
関連する問題