私はWindows Phone 7用にこのアプリを作成しています。カメラロール、保存された写真、その他のフォルダーからすべての画像を取得し、それらをラップパネル内のリストボックスに表示して、並べて表示します....サムネイルの画像が実際に表示されます...しかし、画像の数が増えるにつれて、UIが非常に遅くなり、スクロールに時間がかかります...
多くの投稿やその他の質問を読みました。データの仮想化または遅延読み込みが必要だと思いますが、それをどのように使用できるかわかりません。shawn oster と peter torr からの投稿を見ました.....
バックグラウンドワーカーを使用して画像をロードします...方法は次のとおりです...
void backroungWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Dispatcher.BeginInvoke(() =>
{
foreach (string fileName in fileStorage.GetFileNames("images//*.*"))
{
if (fileName == null)
break;
string filepath = System.IO.Path.Combine("images", fileName);
try
{
using (IsolatedStorageFileStream imageStream = fileStorage.OpenFile(filepath, FileMode.Open))
{
var imageSource = PictureDecoder.DecodeJpeg(imageStream);
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.SetSource(imageStream);
var item = new ImageToName { bmp = bitmapImage, FileName = fileName };
vltBitmapImage.Add(item);
imageStream.Dispose();
imageStream.Close();
}
}
catch
{
Exception x = new Exception();
}
}
if (vltBitmapImage.Count() != 0)
{
lone.Visibility = Visibility.Collapsed;
this.vaultbox.ItemsSource = vltBitmapImage;
}
else
lone.Visibility = Visibility.Visible;
});
}
どんな助けでも大歓迎です.....初心者でごめんなさい...