我得到这个例外: “在Windows Store应用程序项目中,Syncfusion.SfPdfViewer.WinRT.DLL中出现了'System.FormatException'类型的第一次机会异常。
当我进入我的主页面时会发生这种情况,然后按下一个导航到新页面的图块,打开pdf然后返回到主页面,再次按下图块以打开相同的pdf 它不会总是发生,但是当它发生时,它会在我第二次尝试打开pdf时发生。
在我的pdf页面中我有本节
public PdfPage()
{
this.InitializeComponent();
//NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;
this.DataContext = this;
}
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
//DisplayInformation.AutoRotationPreferences = DisplayOrientations.Portrait;
backButton.IsEnabled = false;
backButton.Visibility = Visibility.Collapsed;
document = e.Parameter as Document;
if (document.Source == SourceType.Join)
{
pdfTrace.Visibility = Visibility.Collapsed;
pdfShare.Visibility = Visibility.Collapsed;
}
var error = false;
try
{
await GetFile();
//DispatcherTimerSetup();
await Task.Delay(2000);
//await SetFileTraces("open", document.GetFullPath());
backButton.IsEnabled = true;
backButton.Visibility = Visibility.Visible;
}
catch (FileNotFoundException e1)
{
Debug.WriteLine("pdfpage.cs 87 " + e1.Message);
error = true;
}
catch (Exception e1)
{
Debug.WriteLine("PDFpage.cs 90 " + e1.Message);
ShowMessageDialog("Connection Lost!");
Frame.Navigate(typeof(LoginPage));
}
if (error)
{
await new MessageDialog("The file does not exist!", "Error").ShowAsync();
Frame.GoBack();
}
}
private async Task GetFile()
{
try
{
backButton.IsEnabled = false;
//IsLoading = true;
var path = document.GetFullPath();
byte[] bytes = null;
if (document.Source == Enums.SourceType.Join)
{
JoinService joinService = new JoinService();
string nameNoExt = document.Name.Remove(document.Name.Length - 4, 4);
string handle = document.Handle;
bytes = await joinService.GetFileAsync(handle);
Debug.WriteLine("JOIN");
}
else
{
bytes = await gappService.GetFileAsync(path);
}
pdfDocument = new PdfLoadedDocument(bytes);
pdfViewer.DocumentLoaded += (sender, e) =>
{
try
{
pdfViewer.ViewMode = PageViewMode.FitWidth;
}
catch (Exception e1)
{
Debug.WriteLine("pdfpage.cs 128 " + e1.Message);
}
};
pdfViewer.LoadDocument(pdfDocument);
backButton.IsEnabled = true;
}
catch (Exception e)
{
Debug.WriteLine("PDFPage 175 " + e.Message);
}
}
在我的输出窗口中我得到了
“Syncfusion.SfPdfViewer.WinRT.DLL中发生'System.FormatException'类型的第一次机会异常 pdfpage.cs 128输入字符串的格式不正确。“
在异常堆栈跟踪中我有这个
“
在System.ThrowHelper.ThrowArgumentException(ExceptionResource 资源)在System.Collections.Generic.Dictionary
2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary
2.添加(TKey键,TValue值)
在Syncfusion.Windows.PdfViewer.PdfDocumentView.IncludeCanvas(Int32) pageIndex,Int32宽度,Int32高度)at Syncfusion.Windows.PdfViewer.PdfDocumentView.d__54.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.AsyncMethodBuilderCore.b__4(对象 国家) System.Threading.WinRTSynchronizationContext.Invoker.InvokeCore()
“
并且我的异常消息是:“”值不在预期范围内。“有时{”值不在预期范围内。“}
即时为WinRT XAML版本12.2.0.36使用Syncfusion 8.1控件 (当我在模拟器中测试时,它似乎也会出现更多次)
答案 0 :(得分:1)
尝试重新创建您的问题,在一页中使用syncfusion PDFViewer控件在两个页面之间导航,它对我来说很好。
将此问题报告给Syncfusion支持并解决您的问题。您可以通过this link
与Syncfusion支持小组联系