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
- ProcessHostMapPath.cs
- XslNumber.cs
- panel.cs
- CacheMemory.cs
- TreeNodeSelectionProcessor.cs
- MessageSecurityProtocol.cs
- GlobalizationAssembly.cs
- EdmItemError.cs
- DataList.cs
- CodeCompiler.cs
- TriggerBase.cs
- WebPartManager.cs
- FilterQuery.cs
- TransactionFlowProperty.cs
- _DigestClient.cs
- SimpleFieldTemplateUserControl.cs
- WebPartHeaderCloseVerb.cs
- BinaryMessageFormatter.cs
- HtmlTableRow.cs
- InkPresenterAutomationPeer.cs
- TokenBasedSetEnumerator.cs
- codemethodreferenceexpression.cs
- StrokeRenderer.cs
- XslAstAnalyzer.cs
- NodeInfo.cs
- WebPartDescriptionCollection.cs
- MemberMaps.cs
- ResponseBodyWriter.cs
- BasePattern.cs
- SqlTypesSchemaImporter.cs
- EmptyReadOnlyDictionaryInternal.cs
- HttpGetProtocolImporter.cs
- FormatterServices.cs
- Avt.cs
- KeyGestureValueSerializer.cs
- AlphaSortedEnumConverter.cs
- TextPenaltyModule.cs
- Thread.cs
- SettingsPropertyValue.cs
- SqlParameterCollection.cs
- XmlImplementation.cs
- _ProxyChain.cs
- ApplicationFileCodeDomTreeGenerator.cs
- PersistenceException.cs
- TrackBarRenderer.cs
- oledbmetadatacolumnnames.cs
- SafeHandles.cs
- OwnerDrawPropertyBag.cs
- MethodResolver.cs
- SiteMapDataSource.cs
- XmlSchemaComplexContentRestriction.cs
- StringPropertyBuilder.cs
- CorrelationManager.cs
- HttpWebRequest.cs
- PriorityRange.cs
- RoutedEvent.cs
- ErrorProvider.cs
- SpeechAudioFormatInfo.cs
- SpellCheck.cs
- ViewKeyConstraint.cs
- RSAOAEPKeyExchangeFormatter.cs
- AutomationTextAttribute.cs
- ConfigPathUtility.cs
- ErrorStyle.cs
- DetailsViewDeleteEventArgs.cs
- EntitySqlQueryCacheKey.cs
- IRCollection.cs
- TextFormatterContext.cs
- Image.cs
- ExceptionRoutedEventArgs.cs
- UriParserTemplates.cs
- ArraySubsetEnumerator.cs
- CalendarTable.cs
- CopyOnWriteList.cs
- DivideByZeroException.cs
- TemplateComponentConnector.cs
- SaveWorkflowAsyncResult.cs
- ArraySegment.cs
- Main.cs
- TypeExtension.cs
- ScrollItemPattern.cs
- PolyBezierSegment.cs
- WeakEventTable.cs
- AssemblyAttributesGoHere.cs
- XmlNodeReader.cs
- ObjectDesignerDataSourceView.cs
- StrokeNodeData.cs
- MappingModelBuildProvider.cs
- NetworkInformationPermission.cs
- IISUnsafeMethods.cs
- WindowsAuthenticationModule.cs
- SByteStorage.cs
- PenLineJoinValidation.cs
- validation.cs
- KnownTypesProvider.cs
- ItemsControl.cs
- XmlHelper.cs
- CodeParameterDeclarationExpressionCollection.cs
- Overlapped.cs
- Fonts.cs