类型' System.FormatException'的第一次机会异常发生在Syncfusion.SfPdfViewer.WinRT.DLL中

时间:2014-12-05 09:11:29

标签: c# windows-runtime windows-store-apps syncfusion

我得到这个例外: “在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控件 (当我在模拟器中测试时,它似乎也会出现更多次)

1 个答案:

答案 0 :(得分:1)

尝试重新创建您的问题,在一页中使用syncfusion PDFViewer控件在两个页面之间导航,它对我来说很好。

将此问题报告给Syncfusion支持并解决您的问题。您可以通过this link

与Syncfusion支持小组联系