如何在WP8中实现多选照片页面?

时间:2014-04-29 13:12:52

标签: windows-phone-8

我知道现在在Windows Phone 8.1和Windows 8.1中,使用FileOpenPicker可以轻松选择多张照片。

但是在Windows Phone 8.0中,只有本机代码才能访问API,所以如果我们必须选择多张照片来做某事(比如上传),我们必须通过工具包实现它:LongListMultiSelector

通过这样做,我遇到了性能问题。

这是XAML:

<ScrollViewer x:Name="ScrowllViewAlbum" HorizontalAlignment="Left" Height="500" VerticalAlignment="Top" Width="458" >
                <toolkit:LongListMultiSelector 
                    x:Name="AlbumList"
                    IsGroupingEnabled="False"
                    GridCellSize="100,100"
                    LayoutMode="Grid"
                    HideEmptyGroups="True"
                    IsSelectionEnabled="False"
                    EnforceIsSelectionEnabled="False"
                    CacheMode="BitmapCache"
                    ItemsSource="{Binding}" 
                    Width="459"
                    ItemTemplate="{StaticResource AllPhotoTemplete}" Background="Black"
                />
            </ScrollViewer>

并在ViewModel中:

  public void LoadAllPhotos()
    {
        Allphotos = new ObservableCollection<BitmapImage>();
        MediaLibrary medialib = new MediaLibrary();
        PictureCollection pics =  medialib.Pictures;

        if (pics.Count!=0)
        {
            BitmapImage image = new BitmapImage();
           foreach(var pic in pics)
           {         
                   Stream stream = pic.GetImage();
                   image.SetSource(stream);
                   Allphotos.Add(image);
           }
       }
    }

但是,在调试期间,它会抛出一个没有足够内存的异常。

你能给我一些优化功能的想法吗?

谢谢: - )

1 个答案:

答案 0 :(得分:0)

没有别的方法可以自己实现选择器。

因为您只是加载图像进行预览,所以只加载缩略图,如:

var image = new BitmapImage();
image.SetSource(pic.GetThumbnail());