Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / CommonUI / System / Drawing / Printing / PrintPreviewGraphics.cs / 1 / PrintPreviewGraphics.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Drawing { using System.Runtime.InteropServices; using System.ComponentModel; using System.Diagnostics; using System; using Microsoft.Win32; using System.Security; using System.Security.Permissions; using System.Drawing.Internal; using System.Drawing.Imaging; using System.Drawing.Text; using System.Drawing.Drawing2D; using System.Drawing.Printing; ////// /// internal class PrintPreviewGraphics { private PrintPageEventArgs printPageEventArgs; private PrintDocument printDocument; public PrintPreviewGraphics(PrintDocument document, PrintPageEventArgs e) { printPageEventArgs = e; printDocument = document; } ///Retrives the printer graphics during preview. ////// /// Gets the Visible bounds of this graphics object. Used during print preview. /// public RectangleF VisibleClipBounds { get { IntPtr hdevMode = printPageEventArgs.PageSettings.PrinterSettings.GetHdevmodeInternal(); using( DeviceContext dc = printPageEventArgs.PageSettings.PrinterSettings.CreateDeviceContext(hdevMode)) { using( Graphics graphics = Graphics.FromHdcInternal(dc.Hdc) ) { if (printDocument.OriginAtMargins) { // Adjust the origin of the graphics object to be at the user-specified margin location // Note: Graphics.FromHdc internally calls SaveDC(hdc), we can still use the saved hdc to get the resolution. int dpiX = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.LOGPIXELSX); int dpiY = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.LOGPIXELSY); int hardMarginX_DU = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.PHYSICALOFFSETX); int hardMarginY_DU = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.PHYSICALOFFSETY); float hardMarginX = hardMarginX_DU * 100 / dpiX; float hardMarginY = hardMarginY_DU * 100 / dpiY; graphics.TranslateTransform(-hardMarginX, -hardMarginY); graphics.TranslateTransform(printDocument.DefaultPageSettings.Margins.Left, printDocument.DefaultPageSettings.Margins.Top); } return graphics.VisibleClipBounds; } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Drawing { using System.Runtime.InteropServices; using System.ComponentModel; using System.Diagnostics; using System; using Microsoft.Win32; using System.Security; using System.Security.Permissions; using System.Drawing.Internal; using System.Drawing.Imaging; using System.Drawing.Text; using System.Drawing.Drawing2D; using System.Drawing.Printing; ////// /// internal class PrintPreviewGraphics { private PrintPageEventArgs printPageEventArgs; private PrintDocument printDocument; public PrintPreviewGraphics(PrintDocument document, PrintPageEventArgs e) { printPageEventArgs = e; printDocument = document; } ///Retrives the printer graphics during preview. ////// /// Gets the Visible bounds of this graphics object. Used during print preview. /// public RectangleF VisibleClipBounds { get { IntPtr hdevMode = printPageEventArgs.PageSettings.PrinterSettings.GetHdevmodeInternal(); using( DeviceContext dc = printPageEventArgs.PageSettings.PrinterSettings.CreateDeviceContext(hdevMode)) { using( Graphics graphics = Graphics.FromHdcInternal(dc.Hdc) ) { if (printDocument.OriginAtMargins) { // Adjust the origin of the graphics object to be at the user-specified margin location // Note: Graphics.FromHdc internally calls SaveDC(hdc), we can still use the saved hdc to get the resolution. int dpiX = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.LOGPIXELSX); int dpiY = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.LOGPIXELSY); int hardMarginX_DU = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.PHYSICALOFFSETX); int hardMarginY_DU = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.PHYSICALOFFSETY); float hardMarginX = hardMarginX_DU * 100 / dpiX; float hardMarginY = hardMarginY_DU * 100 / dpiY; graphics.TranslateTransform(-hardMarginX, -hardMarginY); graphics.TranslateTransform(printDocument.DefaultPageSettings.Margins.Left, printDocument.DefaultPageSettings.Margins.Top); } return graphics.VisibleClipBounds; } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ProviderConnectionPointCollection.cs
- ControlBindingsConverter.cs
- LayoutManager.cs
- BitmapFrameDecode.cs
- Material.cs
- FlatButtonAppearance.cs
- Floater.cs
- SelectionRange.cs
- COM2AboutBoxPropertyDescriptor.cs
- DataSetUtil.cs
- MenuItem.cs
- ToolbarAUtomationPeer.cs
- TreeSet.cs
- SafeCryptHandles.cs
- StorageMappingItemCollection.cs
- DateTimeStorage.cs
- InvokeMethodActivity.cs
- OptionalRstParameters.cs
- CalendarTable.cs
- CorrelationValidator.cs
- XmlWriter.cs
- ISFClipboardData.cs
- MenuAdapter.cs
- Thread.cs
- LiteralText.cs
- ArrangedElementCollection.cs
- WebPartConnectionsEventArgs.cs
- SevenBitStream.cs
- NativeMethods.cs
- FileDialog_Vista.cs
- RegionData.cs
- SingleStorage.cs
- QuaternionAnimation.cs
- WindowsPen.cs
- SafeRegistryHandle.cs
- RestClientProxyHandler.cs
- ClipboardData.cs
- FileSystemEventArgs.cs
- CellParaClient.cs
- FilteredXmlReader.cs
- ContentHostHelper.cs
- ObjectDataSource.cs
- ButtonBase.cs
- Point4DConverter.cs
- ServicePointManager.cs
- BStrWrapper.cs
- SqlDataSourceView.cs
- UmAlQuraCalendar.cs
- BindingValueChangedEventArgs.cs
- FigureParaClient.cs
- InputMethodStateChangeEventArgs.cs
- AuthorizationRuleCollection.cs
- HashSet.cs
- TypeNameConverter.cs
- DbSourceParameterCollection.cs
- HMACSHA384.cs
- PasswordTextNavigator.cs
- TryLoadRunnableWorkflowCommand.cs
- RemotingHelper.cs
- NativeActivityFaultContext.cs
- WindowsTab.cs
- OciEnlistContext.cs
- ActivityMarkupSerializer.cs
- CatalogPartChrome.cs
- CodeDOMProvider.cs
- _DomainName.cs
- ServerReliableChannelBinder.cs
- InkCanvasInnerCanvas.cs
- OrthographicCamera.cs
- ScriptControlDescriptor.cs
- ElementUtil.cs
- _MultipleConnectAsync.cs
- MetaModel.cs
- CellParagraph.cs
- EmptyEnumerator.cs
- __ConsoleStream.cs
- CodeNamespaceImport.cs
- CellConstant.cs
- BooleanExpr.cs
- PartitionedStream.cs
- TreeViewCancelEvent.cs
- MessageQueueEnumerator.cs
- WorkflowTransactionOptions.cs
- DecoderFallbackWithFailureFlag.cs
- FormViewUpdatedEventArgs.cs
- GeometryDrawing.cs
- ConversionContext.cs
- NavigationProperty.cs
- ChameleonKey.cs
- precedingquery.cs
- CompilerWrapper.cs
- FontUnit.cs
- LogicalExpressionEditor.cs
- PersonalizationProvider.cs
- SqlSelectStatement.cs
- DbConnectionStringBuilder.cs
- BaseAsyncResult.cs
- DataGridViewUtilities.cs
- PathFigureCollectionConverter.cs
- ToolTipService.cs