2013-01-31 141 views
2

我正在嘗試獲取png圖像,這是我的資源文件夾。我測試了寫在這裏的解決方案:Add images to ListBox (c#, windows phone 7)。首先,我想爲我的ListBox中的每個項目獲取相同的圖像。但我無法實現這一點。圖片沒有顯示。從項目文件加載圖像

這是我在XAML名單看怎麼樣:

<ListBox x:Name="ProductList"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel> 
         <TextBlock Text="{Binding Name}"/> 
         <Image Source="{Binding ImagePath}" Stretch="None"/> 
        </StackPanel> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

這是我如何填充項目:

List<ImageData1> productsList = new List<ImageData1>(); 

foreach (ProductItem item in ProductsTable) 
{ 
    if (item.Category == chosenCategory.TrId) 
    { 
      ImageData1 img = new ImageData1(); 
      img.Name = item.Name; 
      img.ImagePath = new Uri("Resources/img.png", UriKind.RelativeOrAbsolute); 
      productsList.Add(img); 
    } 
} 

ProductList.ItemsSource = productsList; 

這裏是我的類來保存圖像數據:

public class ImageData1 
{ 
    public Uri ImagePath 
    { 
     get; 
     set; 
    } 

    public string Name 
    { 
     get; 
     set; 
    } 
} 
+0

首先檢查您是否有數據綁定錯誤。在應用程序加載時間內查看輸出窗口。 – Haspemulator

回答

2

嘗試在圖像路徑之前放入/。像/Resources/img.png。並嘗試將UriKind.RelativeOrAbsolute更改爲UriKind.Relative。並確保您的圖像被添加爲ContentBuild Action圖像屬性)。這樣它對我有用。

+0

出於好奇,是因爲斜線? – Haspemulator

+0

不,它不是。 UriKind.RelativeOrAbsolute也可以正常工作。我的圖片未添加爲內容。謝謝你的幫助! :) – dziwna

0

也許,您也可以使用以下組裝代碼從當前應用程序中讀取圖像。

StreamResourceInfo info =Application.GetResourceStream(new Uri("Resources/img.png", UriKind.RelativeOrAbsolute)); 
var bitmap = new BitmapImage(); 
bitmap.SetSource(info.Stream); 
img.Soure = bitmap;