wpf-114458-controls-and-libraries-pdf-viewer-examples-file-operations-how-to-load-a-pdf-document-from-a-stream.md
This example shows how to use the DocumentViewerControl.DocumentSource property to load a document from the stream. The stream is obtained from the assembly resources.
Important
When you load a document, the input stream should not be closed until the control finishes using a document (PdfViewerControl.DetachStreamOnLoadComplete is set to false by default).
If you want to close the stream after a document is loaded into the PDF Viewer, set the PdfViewerControl.DetachStreamOnLoadComplete property to true. However, in this case the high rendering performance is not guaranteed.
using System.IO;
using System.Reflection;
using System.Windows;
namespace LoadPDFDocument
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Stream stream = GetResourceStream("LoadPDFDocument.Demo.pdf");
Viewer.DocumentSource = stream;
}
static Stream GetResourceStream(string resourceName)
{
return Assembly.GetExecutingAssembly().
GetManifestResourceStream(resourceName);
}
}
}
Imports System.IO
Imports System.Reflection
Imports System.Windows
Namespace LoadPDFDocument
Partial Public Class MainWindow
Inherits Window
Public Sub New()
InitializeComponent()
Dim stream As Stream = GetResourceStream("LoadPDFDocument.Demo.pdf")
Viewer.DocumentSource = stream
End Sub
Private Shared Function GetResourceStream(ByVal resourceName As String) As Stream
Return System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)
End Function
End Class
End Namespace
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dxpdf="http://schemas.devexpress.com/winfx/2008/xaml/pdf"
x:Class="LoadPDFDocument.MainWindow"
Title="MainWindow" Height="350" Width="525">
<Grid>
<dxpdf:PdfViewerControl x:Name="Viewer"/>
</Grid>
</Window>