1
我有更多然后1000图像(拇指),需要在的JumpList向他们展示的Windows Phone装入大量的图像从IsolatedStorage在IsolatedStorage的JumpList
我有一个XAML代码:
<telerikData:RadJumpList telerikCore:InteractionEffectManager.IsInteractionEnabled="True" Name="TitleCollection" ItemsSource="{Binding TitleCollection}">
<telerikData:RadJumpList.ItemTemplate >
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source= "{Binding Cover}" CacheMode="BitmapCache" />
<TextBlock Text="{Binding FirstLine}" />
<StackPanel>
</DataTemplate>
和型号
public class TitleList : ViewModelBase
{
public String Id_on_server { get; set; }
public String FirstLine
{
get;set;
}
private static Mutex _mut = new Mutex(false,"mutex control");
BitmapImage _Cover;
public BitmapImage Cover
{
get
{
if (_Cover == null)
{
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += new DoWorkEventHandler(
(object sender, DoWorkEventArgs e) =>
{
String fileName = App.ImageDirectory + "/" + this.Id_on_server + "_front_thumb.jpg";
Deployment.Current.Dispatcher.BeginInvoke(delegate()
{
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
if (myIsolatedStorage.FileExists(fileName))
{
try
{
_Cover = new BitmapImage();
_Cover.SetSource(myIsolatedStorage.OpenFile(fileName, FileMode.Open, FileAccess.Read));
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}
else
{
_Cover = new BitmapImage();
_Cover.UriSource = new System.Uri("/Image/Movie.Icon.Default.png", System.UriKind.Relative);
}
}
});
});
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(
(object sender, RunWorkerCompletedEventArgs e) =>
{
_mut.ReleaseMutex();
Deployment.Current.Dispatcher.BeginInvoke(delegate()
{
RaisePropertyChanged("Cover");
});
}
);
_mut.WaitOne();
bw.RunWorkerAsync();
}
return _Cover;
}
set
{
_Cover = value;
RaisePropertyChanged("Cover");
}
}
}
因此,我从背景中的孤立存储中获取图像并显示在列表中。 此代码有效,但如果JumpList快速滚动显示项目的强烈延迟发生。
任何人都可以建议如何正确显示大量的图片或制作像LowProfileImageLoader一样的LoadDelay。 任何建议或示例都会有所帮助。
谢谢你!这真的帮助我。 – Vovich 2013-02-15 07:31:24
为什么Wp7.5上的文件读取速度太慢?当我滚动列表中的500个项目时,我等待了很长时间,而图像完整显示。你知道有什么可能停止加载屏幕以外的图像。所以如果我滚动到500,它不会开始加载1-490,但在滚动期间,取消这些,并更快地显示我在屏幕上看到的490-500。 – Vovich 2013-02-15 12:54:08