The performance of loading the thumbnails is decreased with the removing of the cache in PdfViewer. Possible reason is that the pages are no longer loaded asynchronously. Steps to reproduce: - Open the SDK with the thumbnails for PDFViewer. - Notice that the load of the thumbnails is slow.
Changing the value of the DocumentSource property at runtime causes the RadPdfViewer to display a busy indicator and not update the displayed PDF file with the new one.
To work this around, derive from the RadPdfViewer and create a new dependency property for the property of the type of PdfDocumentSource (for example, from your view model). In its callback method, call the SetDocumentSource method of the derived RadPdfViewer by passing the new value:
public class MyPdfViewer : RadPdfViewer
{
public PdfDocumentSource PdfDocumentSource
{
get { return (PdfDocumentSource)GetValue(PdfDocumentSourceProperty); }
set { SetValue(PdfDocumentSourceProperty, value); }
}
public static readonly DependencyProperty PdfDocumentSourceProperty =
DependencyProperty.Register("PdfDocumentSource", typeof(PdfDocumentSource), typeof(MyPdfViewer), new PropertyMetadata(new PropertyChangedCallback(OnDocumentSourceChanged)));
private static void OnDocumentSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
MyPdfViewer viewer = (MyPdfViewer)d;
viewer.SetDocumentSource((PdfDocumentSource)e.NewValue);
}
}
<local:MyPdfViewer x:Name="pdfViewer" PdfDocumentSource="{Binding MyViewModelPropertyOfTypePdfDocumentSource}" />
The images are loaded asynchronously and when scrolling too fast, the loader might fail to load an image if it is bigger.
When using SaveAsCommandDescriptor of RadPdfViewer and trying to replace a pdf file that is currently open in adobe reader causes the following exception:
System.IO.IOException: The process can not access file "C:\Temp\test.pdf" because it used by another process.
When the Interactive Form Fields are in read-only mode, the user should not be able to change the value of the field. The associated Form Field widgets should not interact with the user, e.g. they should not respond to mouse clicks or change their appearance in response to mouse motions.