Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CommonUI / System / Drawing / Printing / PrintPreviewGraphics.cs / 1305376 / 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; using System.Runtime.Versioning; ////// /// 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 { [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Process, ResourceScope.Process)] 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
- XmlSchemaParticle.cs
- SqlDataSourceTableQuery.cs
- SatelliteContractVersionAttribute.cs
- RegistryKey.cs
- CommandManager.cs
- ConfigurationStrings.cs
- LocatorPart.cs
- CodeGenerator.cs
- BitArray.cs
- PasswordRecoveryDesigner.cs
- WindowsServiceElement.cs
- Char.cs
- Point3DIndependentAnimationStorage.cs
- TextDecoration.cs
- SHA384.cs
- PrintPreviewGraphics.cs
- RequestContext.cs
- XmlIterators.cs
- CommandHelper.cs
- UIElementParagraph.cs
- SplitContainer.cs
- LockRecursionException.cs
- ZipIOBlockManager.cs
- WindowsIPAddress.cs
- OrderedDictionary.cs
- ListenerSessionConnection.cs
- mediaclock.cs
- PolyBezierSegment.cs
- DistributedTransactionPermission.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- ClientConfigurationSystem.cs
- DrawItemEvent.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- IISUnsafeMethods.cs
- SystemIPInterfaceProperties.cs
- MsmqInputSessionChannelListener.cs
- SoapHttpTransportImporter.cs
- SettingsSavedEventArgs.cs
- HttpCapabilitiesEvaluator.cs
- ControlAdapter.cs
- MiniLockedBorderGlyph.cs
- XmlDictionaryWriter.cs
- NamedObject.cs
- ListItemConverter.cs
- FileUpload.cs
- NativeRightsManagementAPIsStructures.cs
- GroupBoxAutomationPeer.cs
- DataBindingCollection.cs
- WebPartDisplayModeEventArgs.cs
- XomlCompiler.cs
- CompositeFontFamily.cs
- GeneratedCodeAttribute.cs
- ElementUtil.cs
- IconHelper.cs
- DataGridViewHitTestInfo.cs
- XmlTypeMapping.cs
- DefaultPropertyAttribute.cs
- SafeRightsManagementQueryHandle.cs
- XPathDescendantIterator.cs
- XmlDocument.cs
- CodeMethodInvokeExpression.cs
- ManagedCodeMarkers.cs
- SiteMapPath.cs
- LOSFormatter.cs
- ExclusiveHandle.cs
- Message.cs
- DataTemplateKey.cs
- ConfigurationStrings.cs
- RemotingConfiguration.cs
- View.cs
- HelpKeywordAttribute.cs
- RijndaelManagedTransform.cs
- PenThread.cs
- ComEventsSink.cs
- ManagementNamedValueCollection.cs
- RangeValidator.cs
- SQLInt64Storage.cs
- DeclarativeCatalogPart.cs
- TextStore.cs
- TextEndOfParagraph.cs
- DriveInfo.cs
- IsolatedStorageException.cs
- GridViewPageEventArgs.cs
- CodeVariableReferenceExpression.cs
- GridViewCommandEventArgs.cs
- TableChangeProcessor.cs
- CompilationLock.cs
- CompiledRegexRunner.cs
- ToolStripItemCollection.cs
- SynchronizedDispatch.cs
- HMACRIPEMD160.cs
- QilTargetType.cs
- WebPartManagerInternals.cs
- ScriptingSectionGroup.cs
- HyperLinkField.cs
- UrlAuthFailedErrorFormatter.cs
- ServiceObjectContainer.cs
- UriScheme.cs
- AssociationTypeEmitter.cs
- TraceUtility.cs