2011-07-01 86 views
0

我有一個頁面,我想在控制模板中顯示圖像。爲此,我只顯示圖像名稱。在XAML使用轉換器在Silverlight中設置圖像的源屬性

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

結合我有::所以我用一個轉換器返回的BitmapImage這樣

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

出於某種原因,我沒能看到圖像的。

我已將圖像擴展名更改爲.jpeg,但仍無法正常工作。

我在做一些錯誤的事情或建議我,如果我錯了。 謝謝。

+0

圖像是否作爲資源建立在您的項目中? – anivas

+0

我不確定我的項目中資源是什麼意思。但是我拖放到我的XAMl頁面上。 – user695663

+0

如果將生成操作設置爲資源 – anivas

回答

1

修改您的轉換器,使其返回BitmapImage的實例。您的轉換器當前正在返回字符串或Uri,但Source屬性的實際類型爲ImageSource

將字符串轉換爲BitmapImage是XamlParser爲我們做的一些魔術,但是當我們使用Converter提供值時,我們需要給它一個正確的類型。

+0

即使我改變它retun BitMapImage實例它不工作 – user695663

0

您可以嘗試使用ImageFailed事件來檢查加載圖像時是否有任何異常被拋出。如果在從互聯網加載圖像時出現網絡問題,通常會得到AG_E_NETWORK_ERROR。

我在使用內置Web服務器從Visual Studio 2010中默認運行Silverlight應用程序時遇到了此問題。我將託管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 ; 
} 
相關問題