Catch XamlParseException
<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="FlowDocReader Load/Save Sample" Width="640" Height="480"> <StackPanel> <FlowDocumentReader Name="FlowDocRdr" Grid.Row="1"/> </StackPanel> </Window> //File:Window.xaml.cs using System; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Windows.Forms; using System.IO; using System.Windows.Markup; namespace WpfApplication1 { public partial class Window1 : Window { public Window1() { InitializeComponent(); FlowDocument content = null; OpenFileDialog openFile = new OpenFileDialog(); openFile.Filter = "FlowDocument Files (*.xaml)|*.xaml|All Files (*.*)|*.*"; if (openFile.ShowDialog() == System.Windows.Forms.DialogResult.OK) { FileStream xamlFile = openFile.OpenFile() as FileStream; if (xamlFile == null) return; else { try { content = XamlReader.Load(xamlFile) as FlowDocument; if (content == null) throw(new XamlParseException("The specified file could not be loaded as a FlowDocument.")); } catch (XamlParseException e) { String error = "There was a problem parsing the specified file:\n\n"; error += openFile.FileName; error += "\n\nException details:\n\n"; error += e.Message; System.Windows.MessageBox.Show(error); return; } catch (Exception e) { String error = "There was a problem loading the specified file:\n\n"; error += openFile.FileName; error += "\n\nException details:\n\n"; error += e.Message; System.Windows.MessageBox.Show(error); return; } FlowDocRdr.Document = content; } } } } }