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
- OrderedEnumerableRowCollection.cs
- EmptyStringExpandableObjectConverter.cs
- HwndSource.cs
- IsolatedStorageFilePermission.cs
- ComboBoxItem.cs
- CompareValidator.cs
- EUCJPEncoding.cs
- MatrixTransform.cs
- EmbeddedMailObject.cs
- XmlAnyAttributeAttribute.cs
- GridViewDeletedEventArgs.cs
- CompareInfo.cs
- StructuredTypeInfo.cs
- oledbmetadatacollectionnames.cs
- EventHandlerList.cs
- DateTimeAutomationPeer.cs
- VisualBasicImportReference.cs
- ILGenerator.cs
- Calendar.cs
- ScriptResourceHandler.cs
- XslException.cs
- IsolationInterop.cs
- ProcessModelInfo.cs
- DataListItemEventArgs.cs
- sqlstateclientmanager.cs
- XPathPatternParser.cs
- DataGridViewRowCancelEventArgs.cs
- CompressStream.cs
- WebHeaderCollection.cs
- SettingsProviderCollection.cs
- OptimisticConcurrencyException.cs
- ConnectorSelectionGlyph.cs
- WebPartConnectionsEventArgs.cs
- Tuple.cs
- SourceFileInfo.cs
- XmlDeclaration.cs
- SafeCertificateStore.cs
- WorkflowOperationAsyncResult.cs
- HttpCacheParams.cs
- UnsafeNativeMethods.cs
- handlecollector.cs
- CodeGroup.cs
- WhiteSpaceTrimStringConverter.cs
- _HeaderInfo.cs
- HtmlElementErrorEventArgs.cs
- XmlTextReaderImpl.cs
- CompositeScriptReferenceEventArgs.cs
- FontNamesConverter.cs
- Convert.cs
- XhtmlBasicLabelAdapter.cs
- BitSet.cs
- ApplicationServicesHostFactory.cs
- DefaultTextStoreTextComposition.cs
- SQLSingleStorage.cs
- WebPartCloseVerb.cs
- FlatButtonAppearance.cs
- Exceptions.cs
- EventWaitHandleSecurity.cs
- SrgsElementList.cs
- NotSupportedException.cs
- ImmutableCommunicationTimeouts.cs
- ActivationArguments.cs
- UpdateTracker.cs
- PropertyChangedEventArgs.cs
- EditorResources.cs
- ToolboxSnapDragDropEventArgs.cs
- HandlerWithFactory.cs
- DataObject.cs
- SyndicationDeserializer.cs
- DictionaryManager.cs
- DataSvcMapFileSerializer.cs
- ExtensibleSyndicationObject.cs
- AmbientValueAttribute.cs
- EventlogProvider.cs
- TreeWalker.cs
- ValueTable.cs
- NameValueConfigurationElement.cs
- PolicyStatement.cs
- WSSecurityJan2004.cs
- DataGridViewCellStyleChangedEventArgs.cs
- CustomCredentialPolicy.cs
- SubstitutionResponseElement.cs
- XmlC14NWriter.cs
- BaseParaClient.cs
- TemplateInstanceAttribute.cs
- ModifierKeysConverter.cs
- HttpServerVarsCollection.cs
- MD5.cs
- SequenceDesigner.cs
- ChildrenQuery.cs
- BinaryNode.cs
- PolyLineSegment.cs
- InstanceCreationEditor.cs
- Lock.cs
- SpellerError.cs
- RequestTimeoutManager.cs
- EventArgs.cs
- StringUtil.cs
- StringValidator.cs
- HeaderUtility.cs