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
- XmlAutoDetectWriter.cs
- AssociationTypeEmitter.cs
- ObjectItemCollection.cs
- SecurityHeader.cs
- Hash.cs
- DbProviderConfigurationHandler.cs
- FormViewRow.cs
- NameSpaceEvent.cs
- InternalPermissions.cs
- CommonDialog.cs
- HwndAppCommandInputProvider.cs
- ColorInterpolationModeValidation.cs
- MethodMessage.cs
- EntityContainer.cs
- SourceElementsCollection.cs
- CircleHotSpot.cs
- OuterGlowBitmapEffect.cs
- MachineKeySection.cs
- cookiecollection.cs
- Size3D.cs
- FontUnit.cs
- ClientSettingsStore.cs
- CategoryGridEntry.cs
- StylusPointDescription.cs
- FileDialogPermission.cs
- bidPrivateBase.cs
- SelectingProviderEventArgs.cs
- sortedlist.cs
- PropertyRef.cs
- TagPrefixCollection.cs
- SystemIPGlobalStatistics.cs
- FixedDocumentSequencePaginator.cs
- UniqueConstraint.cs
- HtmlElementEventArgs.cs
- NTAccount.cs
- NavigationHelper.cs
- ButtonFieldBase.cs
- FontUnit.cs
- CustomAttribute.cs
- ChannelDispatcherCollection.cs
- Point3DCollection.cs
- AdornerLayer.cs
- DefaultDiscoveryService.cs
- ClientScriptManagerWrapper.cs
- mediaeventshelper.cs
- StubHelpers.cs
- Fx.cs
- ScriptReference.cs
- ScaleTransform.cs
- HtmlHistory.cs
- PropertiesTab.cs
- ModelServiceImpl.cs
- TreeViewAutomationPeer.cs
- Missing.cs
- XmlDesigner.cs
- URIFormatException.cs
- ReadOnlyDictionary.cs
- XPathChildIterator.cs
- TiffBitmapEncoder.cs
- followingsibling.cs
- RuntimeArgumentHandle.cs
- ConvertTextFrag.cs
- SamlAssertion.cs
- OleDbPropertySetGuid.cs
- WebPartVerbCollection.cs
- FrugalMap.cs
- DataGridViewCellCollection.cs
- ChangeBlockUndoRecord.cs
- ToolStripItemDataObject.cs
- OleDbPropertySetGuid.cs
- PropertyGeneratedEventArgs.cs
- InputBinder.cs
- Table.cs
- TdsParserSafeHandles.cs
- SemanticKeyElement.cs
- Pens.cs
- CellConstant.cs
- BindStream.cs
- DtrList.cs
- AxDesigner.cs
- FactoryId.cs
- FormViewRow.cs
- SiteMap.cs
- AlternateViewCollection.cs
- BlurBitmapEffect.cs
- SortedDictionary.cs
- RegularExpressionValidator.cs
- MouseEventArgs.cs
- SByteStorage.cs
- SoapAttributeAttribute.cs
- DebugHandleTracker.cs
- TaiwanCalendar.cs
- FamilyTypefaceCollection.cs
- OSFeature.cs
- HttpRequest.cs
- RowToParametersTransformer.cs
- MetadataCache.cs
- UnsafeNativeMethods.cs
- LinqDataSourceInsertEventArgs.cs
- RadioButtonRenderer.cs