Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- VerificationException.cs
- XmlWriterSettings.cs
- NavigationWindow.cs
- MemberPathMap.cs
- RegexMatchCollection.cs
- IndependentlyAnimatedPropertyMetadata.cs
- ModelItemDictionaryImpl.cs
- TypeNameParser.cs
- SerializationEventsCache.cs
- Stack.cs
- ActivityCodeDomSerializationManager.cs
- SafeEventLogWriteHandle.cs
- TextTreeRootTextBlock.cs
- Profiler.cs
- ToolStripScrollButton.cs
- ImpersonateTokenRef.cs
- WhitespaceRule.cs
- DataStreamFromComStream.cs
- ParseElementCollection.cs
- KeyGestureValueSerializer.cs
- Empty.cs
- ObjRef.cs
- ProfileBuildProvider.cs
- FileRecordSequence.cs
- IRCollection.cs
- WindowsListViewItem.cs
- SchemaTableColumn.cs
- DrawingGroup.cs
- DateTimeConstantAttribute.cs
- PageClientProxyGenerator.cs
- DefaultEventAttribute.cs
- Rotation3DAnimation.cs
- DotNetATv1WindowsLogEntryDeserializer.cs
- WMIGenerator.cs
- ManipulationCompletedEventArgs.cs
- CellPartitioner.cs
- SqlReferenceCollection.cs
- IdleTimeoutMonitor.cs
- GetWinFXPath.cs
- DataGridViewCheckBoxCell.cs
- BindingElementExtensionElement.cs
- ChildTable.cs
- WebControlsSection.cs
- TypeInfo.cs
- SmiTypedGetterSetter.cs
- AssemblyUtil.cs
- ObjectIDGenerator.cs
- SrgsElementFactory.cs
- AsyncOperationManager.cs
- KnowledgeBase.cs
- EventProxy.cs
- EmptyStringExpandableObjectConverter.cs
- ToolStripGripRenderEventArgs.cs
- LinqDataSourceDisposeEventArgs.cs
- FileResponseElement.cs
- cache.cs
- DesignerDataTable.cs
- HttpMethodConstraint.cs
- DecimalMinMaxAggregationOperator.cs
- ContentElementCollection.cs
- AlignmentXValidation.cs
- ByteStack.cs
- ToolBar.cs
- ProgressPage.cs
- ColorAnimationUsingKeyFrames.cs
- ACL.cs
- ToolboxControl.cs
- CompilerGlobalScopeAttribute.cs
- CodeGenerator.cs
- TransformPatternIdentifiers.cs
- DataConnectionHelper.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- CqlBlock.cs
- TraceXPathNavigator.cs
- VarRemapper.cs
- DataGridLengthConverter.cs
- ViewCellSlot.cs
- ModifierKeysValueSerializer.cs
- ClientRolePrincipal.cs
- LookupNode.cs
- Module.cs
- CompositionTarget.cs
- mongolianshape.cs
- MenuItem.cs
- TranslateTransform.cs
- CodeParameterDeclarationExpressionCollection.cs
- StrokeSerializer.cs
- DataSourceExpression.cs
- PaginationProgressEventArgs.cs
- WebPartsPersonalization.cs
- FontClient.cs
- SymbolDocumentGenerator.cs
- XamlInt32CollectionSerializer.cs
- DataServiceQueryException.cs
- DictionaryGlobals.cs
- FileVersion.cs
- UpDownBase.cs
- EventLog.cs
- Baml2006Reader.cs
- LocalBuilder.cs