我在 windows phone 8.1 上做了一个应用程序,用于使用 xfinium 阅读 pdf。在阅读 pdf 时添加翻转视图时遇到问题。不显示图像并显示错误消息,例如此链接
代码:
async private void LoadFile(string name)
{
StorageFolder installedLocation = ApplicationData.Current.LocalFolder;
StorageFolder koleksibuku = await installedLocation.CreateFolderAsync("koleksibuku", CreationCollisionOption.OpenIfExists);
IReadOnlyList<StorageFile> files = await koleksibuku.GetFilesAsync();
StorageFolder thumbfolder = await installedLocation.CreateFolderAsync("thumb", CreationCollisionOption.OpenIfExists);
foreach (StorageFile file in files)
{
if (file.DisplayName == name)
{
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
Stream fileStream = stream.AsStreamForRead();
PdfFixedDocument document = new PdfFixedDocument(fileStream);
//fileStream.Dispose();
(Application.Current as App).Document = document;
int i = 0;
for (i = 0; i < document.Pages.Count; i++)
{
int index = i;
var t = Task<PdfBgraByteRenderingSurface>.Factory.StartNew(() =>
{
PdfPageRenderer renderer = new PdfPageRenderer(document.Pages[index]);
PdfBgraByteRenderingSurface rs = renderer.CreateRenderingSurface<PdfBgraByteRenderingSurface>(96, 96);
PdfRendererSettings settings = new PdfRendererSettings(thumbnailDpi, thumbnailDpi, rs);
renderer.ConvertPageToImage(settings);
return rs;
})
.ContinueWith(value =>
{
PdfBgraByteRenderingSurface rs = value.Result;
WriteableBitmap pageBitmap = new WriteableBitmap(rs.Width, rs.Height);
Stream imageStream = pageBitmap.PixelBuffer.AsStream();
imageStream.Write(rs.Bitmap, 0, rs.Bitmap.Length);
flipView.SelectionChanged += flipView_SelectionChanged;
flipView.Loaded += flipView_Loaded;
flipView.ItemsSource = pageBitmap;
}, TaskScheduler.FromCurrentSynchronizationContext());
}
}
}
}
如何处理?