// Token: 0x06007A0D RID: 31245 RVA: 0x002291F0 File Offset: 0x002273F0 private static void OnCommandPrint(object sender, ExecutedRoutedEventArgs e) { RootBrowserWindow rootBrowserWindow = sender as RootBrowserWindow; Invariant.Assert(rootBrowserWindow != null); if (!rootBrowserWindow._isPrintingFromRBW) { Visual visual = rootBrowserWindow.Content as Visual; if (visual == null) { IInputElement inputElement = rootBrowserWindow.Content as IInputElement; if (inputElement != null) { rootBrowserWindow._isPrintingFromRBW = true; try { if (ApplicationCommands.Print.CanExecute(null, inputElement)) { ApplicationCommands.Print.Execute(null, inputElement); return; } } finally { rootBrowserWindow._isPrintingFromRBW = false; } } } PrintDialog printDialog = new PrintDialog(); if (printDialog.ShowDialog() == true) { string printJobDescription = RootBrowserWindow.GetPrintJobDescription(RootBrowserWindow.App.MainWindow); if (visual == null) { INavigatorImpl navigatorImpl = rootBrowserWindow; Invariant.Assert(navigatorImpl != null); visual = navigatorImpl.FindRootViewer(); Invariant.Assert(visual != null); } Rect imageableRect = RootBrowserWindow.GetImageableRect(printDialog); VisualBrush visualBrush = new VisualBrush(visual); visualBrush.Stretch = Stretch.None; DrawingVisual drawingVisual = new DrawingVisual(); DrawingContext drawingContext = drawingVisual.RenderOpen(); drawingContext.DrawRectangle(visualBrush, null, new Rect(imageableRect.X, imageableRect.Y, visual.VisualDescendantBounds.Width, visual.VisualDescendantBounds.Height)); drawingContext.Close(); printDialog.PrintVisual(drawingVisual, printJobDescription); } } }