0

我正在我的 Windows Phone 8 应用程序中集成图片库。

这是 xaml 代码:

        <phone:LongListSelector Name="listdata" LayoutMode="Grid"
JumpListStyle="{StaticResource JumpListStyle}" GridCellSize="147,147">
            <phone:LongListSelector.ItemTemplate>
                <DataTemplate>
                    <Border BorderBrush="White" BorderThickness="1">
                        <Image Source="{Binding thumbnail}" Height="147" Width="147"/>
                    </Border>
                </DataTemplate>
            </phone:LongListSelector.ItemTemplate>

        </phone:LongListSelector>

    </Grid>

这是 imagemodel 类:

public class imagemodel
{
    public WriteableBitmap thumbnail { get; set; }
    public string name { get; set; }
    public Picture image;
    private Picture picture;

    public imagemodel(Picture pic)
    {
        image = pic;
        name = pic.Name;
        thumbnail = PictureDecoder.DecodeJpeg(pic.GetThumbnail());

    }



}

媒体库库 = 新媒体库();

    public void loadmygallery()
    {

        foreach (var picture in lib.Pictures)
        {

                imagemodel im = new imagemodel(picture);
                collection.Add(im);

        }

    }

该应用程序在打开图库页面时崩溃。这可能是由于内存过载,如果我限制缩略图显示为 30 或不是一个非常高的数字,代码运行良好。有没有办法仍然显示所有缩略图?

4

1 回答 1

0

由于上下文很少,而且我看不到图像是如何处理的,所以我很难告诉你很多关于你的错误,但是....我认为缩略图不是原因,如果它在你限制时工作正常数数。尝试更改代码不要存储图像,通常程序会将缩略图缓存到单独的文件中,或者在更糟糕的情况下缓存到内存中(只是不好,因为每次都需要完全处理图像)并显示缩略图,这样您的应用程序就不会存储所有您的媒体库到 ram。图像本身仅在打开时才被读取。

于 2014-10-11T10:39:08.467 回答