Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SamlAttributeStatement.cs
- PerfCounterSection.cs
- CatalogPartChrome.cs
- JoinCqlBlock.cs
- SqlStatistics.cs
- ArgIterator.cs
- VariableExpressionConverter.cs
- DBConnection.cs
- SystemFonts.cs
- TemplatePartAttribute.cs
- SystemNetHelpers.cs
- RecognitionEventArgs.cs
- TransformPattern.cs
- CheckPair.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- VersionConverter.cs
- ISAPIApplicationHost.cs
- CompilerCollection.cs
- TraceHandler.cs
- X509Utils.cs
- DataGridViewCellCancelEventArgs.cs
- RectValueSerializer.cs
- LicenseProviderAttribute.cs
- NavigationWindow.cs
- DataGridClipboardHelper.cs
- SemanticAnalyzer.cs
- ParallelTimeline.cs
- CryptoStream.cs
- IListConverters.cs
- DataPagerFieldCommandEventArgs.cs
- BindingExpressionBase.cs
- RsaEndpointIdentity.cs
- EventsTab.cs
- processwaithandle.cs
- CSharpCodeProvider.cs
- UniqueIdentifierService.cs
- SymbolUsageManager.cs
- GPStream.cs
- BinarySecretSecurityToken.cs
- CatalogZoneBase.cs
- EventWaitHandleSecurity.cs
- List.cs
- AsyncResult.cs
- SinglePhaseEnlistment.cs
- WSTrustDec2005.cs
- TypeBuilderInstantiation.cs
- UntrustedRecipientException.cs
- DescendantBaseQuery.cs
- JsonQueryStringConverter.cs
- PreloadedPackages.cs
- ConvertEvent.cs
- ListViewItemCollectionEditor.cs
- DoubleLink.cs
- TextFindEngine.cs
- WebReferenceCollection.cs
- StructuredProperty.cs
- EventProxy.cs
- GraphicsContainer.cs
- DBPropSet.cs
- FamilyTypefaceCollection.cs
- DtdParser.cs
- PhysicalFontFamily.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- SystemFonts.cs
- ObjectHelper.cs
- StorageTypeMapping.cs
- BamlRecordWriter.cs
- DBSqlParserColumnCollection.cs
- ELinqQueryState.cs
- WrapperEqualityComparer.cs
- Validator.cs
- TextBoxBase.cs
- DbMetaDataCollectionNames.cs
- WaitHandleCannotBeOpenedException.cs
- PartitionerStatic.cs
- Compiler.cs
- SchemaHelper.cs
- Utils.cs
- Codec.cs
- GradientSpreadMethodValidation.cs
- WindowCollection.cs
- ModifiableIteratorCollection.cs
- URLAttribute.cs
- CheckBox.cs
- StyleCollection.cs
- SemanticResultValue.cs
- OrCondition.cs
- ElementNotEnabledException.cs
- BamlReader.cs
- IntSecurity.cs
- TableSectionStyle.cs
- Button.cs
- SystemResources.cs
- Command.cs
- DependencySource.cs
- SqlXml.cs
- SmiRecordBuffer.cs
- AddressAlreadyInUseException.cs
- JulianCalendar.cs
- AudioStateChangedEventArgs.cs