Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / CommonUI / System / Drawing / Printing / PrinterUnitConvert.cs / 1 / PrinterUnitConvert.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Drawing.Printing {
using System.Runtime.InteropServices;
using System.Diagnostics;
using System;
using System.Drawing;
using System.ComponentModel;
using Microsoft.Win32;
///
///
///
/// Specifies a series of conversion methods that are
/// useful when interoperating with the raw Win32 printing API.
/// This class cannot be inherited.
///
///
public sealed class PrinterUnitConvert {
private PrinterUnitConvert() {
}
///
///
///
/// Converts the value, in fromUnit units, to toUnit units.
///
///
public static double Convert(double value, PrinterUnit fromUnit, PrinterUnit toUnit) {
double fromUnitsPerDisplay = UnitsPerDisplay(fromUnit);
double toUnitsPerDisplay = UnitsPerDisplay(toUnit);
return value * toUnitsPerDisplay / fromUnitsPerDisplay;
}
///
///
///
/// Converts the value, in fromUnit units, to toUnit units.
///
///
public static int Convert(int value, PrinterUnit fromUnit, PrinterUnit toUnit) {
return(int) Math.Round(Convert((double)value, fromUnit, toUnit));
}
///
///
///
/// Converts the value, in fromUnit units, to toUnit units.
///
///
public static Point Convert(Point value, PrinterUnit fromUnit, PrinterUnit toUnit) {
return new Point(
Convert(value.X, fromUnit, toUnit),
Convert(value.Y, fromUnit, toUnit)
);
}
///
///
///
/// Converts the value, in fromUnit units, to toUnit units.
///
///
public static Size Convert(Size value, PrinterUnit fromUnit, PrinterUnit toUnit) {
return new Size(
Convert(value.Width, fromUnit, toUnit),
Convert(value.Height, fromUnit, toUnit)
);
}
///
///
///
/// Converts the value, in fromUnit units, to toUnit units.
///
///
public static Rectangle Convert(Rectangle value, PrinterUnit fromUnit, PrinterUnit toUnit) {
return new Rectangle(
Convert(value.X, fromUnit, toUnit),
Convert(value.Y, fromUnit, toUnit),
Convert(value.Width, fromUnit, toUnit),
Convert(value.Height, fromUnit, toUnit)
);
}
///
///
///
/// Converts the value, in fromUnit units, to toUnit units.
///
///
public static Margins Convert(Margins value, PrinterUnit fromUnit, PrinterUnit toUnit) {
Margins result = new Margins();
result.Left = Convert(value.Left, fromUnit, toUnit);
result.Right = Convert(value.Right, fromUnit, toUnit);
result.Top = Convert(value.Top, fromUnit, toUnit);
result.Bottom = Convert(value.Bottom, fromUnit, toUnit);
return result;
}
private static double UnitsPerDisplay(PrinterUnit unit) {
double result;
switch (unit) {
case PrinterUnit.Display:
result = 1.0;
break;
case PrinterUnit.ThousandthsOfAnInch:
result = 10.0;
break;
case PrinterUnit.HundredthsOfAMillimeter:
result = 25.4;
break;
case PrinterUnit.TenthsOfAMillimeter:
result = 2.54;
break;
default:
Debug.Fail("Unknown PrinterUnit " + unit);
result = 1.0;
break;
}
return result;
}
}
}
// 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
- WorkflowMarkupSerializerMapping.cs
- DeviceContexts.cs
- XslTransformFileEditor.cs
- WorkflowWebHostingModule.cs
- TokenDescriptor.cs
- ResourcePermissionBaseEntry.cs
- CheckoutException.cs
- TouchesOverProperty.cs
- CompilerState.cs
- ConstraintCollection.cs
- exports.cs
- VScrollBar.cs
- SystemUdpStatistics.cs
- BuildProvidersCompiler.cs
- SubpageParagraph.cs
- ToolStripScrollButton.cs
- KeyNotFoundException.cs
- SerTrace.cs
- GuidelineCollection.cs
- CompositeDataBoundControl.cs
- VerificationException.cs
- ColumnCollectionEditor.cs
- TreeWalkHelper.cs
- Regex.cs
- Image.cs
- OneWayChannelFactory.cs
- TitleStyle.cs
- XmlSchemaExternal.cs
- uribuilder.cs
- XmlTextEncoder.cs
- ClientSideQueueItem.cs
- Operand.cs
- TypedElement.cs
- ResolveNameEventArgs.cs
- RuleRef.cs
- GenerateScriptTypeAttribute.cs
- ViewSimplifier.cs
- GlyphRunDrawing.cs
- EnumValAlphaComparer.cs
- xml.cs
- Conditional.cs
- TypedElement.cs
- UMPAttributes.cs
- IntSecurity.cs
- SingleSelectRootGridEntry.cs
- IMembershipProvider.cs
- AnnotationHelper.cs
- DataViewManager.cs
- PropertyItemInternal.cs
- TripleDES.cs
- HMACSHA256.cs
- SplineKeyFrames.cs
- System.Data_BID.cs
- InfoCardClaim.cs
- XmlQueryType.cs
- DataSourceCache.cs
- TemplateKeyConverter.cs
- CodeEntryPointMethod.cs
- GridProviderWrapper.cs
- CompositeControl.cs
- SrgsSemanticInterpretationTag.cs
- CryptoConfig.cs
- Baml2006ReaderSettings.cs
- DebugTracing.cs
- Rijndael.cs
- HtmlFormParameterReader.cs
- VisualTreeHelper.cs
- ScriptHandlerFactory.cs
- Point.cs
- InputElement.cs
- JsonByteArrayDataContract.cs
- AncillaryOps.cs
- RC2.cs
- Size3DValueSerializer.cs
- ByteStorage.cs
- ActiveXSite.cs
- HtmlTableRowCollection.cs
- LeafCellTreeNode.cs
- ResourceType.cs
- RelationHandler.cs
- NativeRightsManagementAPIsStructures.cs
- GridPatternIdentifiers.cs
- ExceptionValidationRule.cs
- XmlArrayItemAttribute.cs
- CacheDependency.cs
- AutomationPeer.cs
- PreviewKeyDownEventArgs.cs
- PropertyValueUIItem.cs
- UncommonField.cs
- GroupQuery.cs
- FlowSwitchLink.cs
- StringSource.cs
- VarRefManager.cs
- XmlWriterSettings.cs
- dsa.cs
- HtmlObjectListAdapter.cs
- MULTI_QI.cs
- CompensatableTransactionScopeActivity.cs
- MetaModel.cs
- DescendantOverDescendantQuery.cs