我知道现在在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);
}
}
}
但是,在调试期间,它会抛出一个没有足够内存的异常。
你能给我一些优化功能的想法吗?
谢谢: - )
答案 0 :(得分:0)
没有别的方法可以自己实现选择器。
因为您只是加载图像进行预览,所以只加载缩略图,如:
var image = new BitmapImage();
image.SetSource(pic.GetThumbnail());