我正在尝试获取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 :(得分:2)
尝试将/
放在图像路径之前。像/Resources/img.png
一样。并尝试将UriKind.RelativeOrAbsolute
更改为UriKind.Relative
。并确保将图片添加为Content
(图片的Build Action
属性)。这样它对我有用。
答案 1 :(得分:0)
也可以使用以下汇编代码从当前应用程序中读取图像。
StreamResourceInfo info =Application.GetResourceStream(new Uri("Resources/img.png", UriKind.RelativeOrAbsolute));
var bitmap = new BitmapImage();
bitmap.SetSource(info.Stream);
img.Soure = bitmap;