So, I went out and specifically bought Telerik UI for WPF because we needed a good PDF Viewer.
My structure is rather simple
WPF:
<
Window
xmlns:local
=
"clr-namespace:Catalogo"
xmlns:controls
=
"clr-namespace:Controls;assembly=Controls"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
x:Class
=
"Catalogo.Catalogos"
mc:Ignorable
=
"d"
Title
=
"Catalogo"
WindowStartupLocation
=
"CenterScreen"
SnapsToDevicePixels
=
"False"
VisualEdgeMode
=
"Aliased"
ResizeMode
=
"NoResize"
Height
=
"{DynamicResource {x:Static SystemParameters.MaximizedPrimaryScreenHeightKey}}"
Width
=
"{DynamicResource {x:Static SystemParameters.MaximizedPrimaryScreenWidthKey}}"
WindowStyle
=
"None"
Loaded
=
"Window_Loaded"
Background
=
"{DynamicResource primary_dark}"
>
<
Window.Resources
>
<
ResourceDictionary
Source
=
"/Styles;component/Merged.xaml"
/>
</
Window.Resources
>
<
Grid
>
<
telerik:RadBook
RightPageIndex
=
"1"
BorderBrush
=
"Transparent"
>
<
telerik:RadBookItem
Width
=
"960"
Height
=
"1060"
>
<
Grid
>
<
Grid
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"Auto"
/>
<
RowDefinition
/>
</
Grid.RowDefinitions
>
<
telerik:RadPdfViewerToolBar
RadPdfViewer
=
"{Binding ElementName=pdfViewerIzq, Mode=OneTime}"
/>
<
telerik:RadPdfViewer
x:Name
=
"pdfViewerIzq"
DataContext
=
"{Binding CommandDescriptors, ElementName=pdfViewerIzq}"
Grid.Row
=
"1"
/>
</
Grid
>
</
Grid
>
</
telerik:RadBookItem
>
<
telerik:RadBookItem
Width
=
"960"
Height
=
"1060"
>
<
Grid
>
<
Grid
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"Auto"
/>
<
RowDefinition
/>
</
Grid.RowDefinitions
>
<
telerik:RadPdfViewerToolBar
Name
=
"barraDer"
RadPdfViewer
=
"{Binding ElementName=pdfViewerDer, Mode=OneTime}"
/>
<
telerik:RadPdfViewer
x:Name
=
"pdfViewerDer"
DataContext
=
"{Binding CommandDescriptors, ElementName=pdfViewerDer}"
Grid.Row
=
"1"
/>
</
Grid
>
</
Grid
>
</
telerik:RadBookItem
>
</
telerik:RadBook
>
</
Grid
>
</
Window
>
Then I have two methods for setting the source for the left and right viewers:
public void setPageIzq(string ruta)
{
pdfViewerIzq.DocumentSource = new PdfDocumentSource(new System.Uri(ruta));
pdfViewerIzq.FitToPage();
pdfViewerIzq.Mode = Telerik.Windows.Documents.Fixed.UI.FixedDocumentViewerMode.TextSelection;
pdfViewerIzq.CommandDescriptors.FitToPageFixedDocumentSinglePageViewPresenterCommandDescriptor.IsEnabled = true;
pdfViewerIzq.CommandDescriptors.FitToPageFixedDocumentSinglePageViewPresenterCommandDescriptor.Command.Execute(null);
pdfViewerIzq.ScaleMode = Telerik.Windows.Documents.Fixed.UI.ScaleMode.FitToPage;
}
public void setPageDer(string ruta)
{
pdfViewerDer.DocumentSource = new PdfDocumentSource(new System.Uri(ruta));
pdfViewerIzq.CommandDescriptors.FitToPageCommandDescriptor.IsEnabled = true;
pdfViewerIzq.CommandDescriptors.FitToPageCommandDescriptor.Command.Execute(null);
}
As you can see, I tried a bunch of different ways to set the viewer to fit to page. If I use the navbar up top, I can make it fit to page, but none of the methods I tried worked for my manual setting.
I had to take this approach because we need to display the document two pages at a time, any good ideas?