Layers represent groups of optional content which can be hidden or shown.
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 default WPF PrintDialog cannot print asynchronously when it is shown in UI. However, you may see the demo in this forum post showing how to create custom PrintDialog and perform async printing with it: http://www.telerik.com/forums/pdfviewer-print-makes-ui-unresponsive#js0YdzFWc0Oa8C3g6a18lg
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.
Represents Highlights PDF content. While the other annotations are drawn on top of the content, the highlight annotation is behind the text it highlights. In other words, it has to be inserted at a specific place in the ContentElementsUILayer. The precise place where the highlight should be placed is described in the PDF file with the BDC, MCID and EMC operators. At the moment, we have implemented a read-only rendering for all annotation types which draws the annotions separately from the page content. In the case of Highlight, the annotation is drawn below the other content. With this implementation, depending on the PDF content, the highlight annotation might be visible or it might not be because in some cases there is geometry content below the highlighted text which hides the highlight annotation appearance.