2

リソースフォルダであるpng画像を取得しようとしています。ここに書かれているソリューションをテストしました:リストボックス(c#、Windows Phone 7)に画像を追加します。まず、リストボックス内のすべてのアイテムで同じ画像を取得したいと思いました。しかし、私はそれを達成することはできません。写真は表示されません。

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;
    }
}
4

2 に答える 2

2

/画像パスの前に配置してみてください。のように/Resources/img.png。そして、に変更UriKind.RelativeOrAbsoluteして みてくださいUriKind.RelativeContentまた、画像が(Build Actionimageのプロパティ)として追加されていることを確認してください。そうすればそれは私のために働きます。

于 2013-01-31T15:43:00.890 に答える
0

おそらく、次のアセンブルされたコードを使用して、現在のアプリケーションから画像を読み取ることもできます。

StreamResourceInfo info =Application.GetResourceStream(new Uri("Resources/img.png", UriKind.RelativeOrAbsolute));
var bitmap = new BitmapImage();
bitmap.SetSource(info.Stream);
img.Soure = bitmap;
于 2013-02-01T12:19:59.160 に答える