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
- SessionParameter.cs
- PrinterUnitConvert.cs
- State.cs
- ButtonRenderer.cs
- UiaCoreTypesApi.cs
- SingleResultAttribute.cs
- KeyboardEventArgs.cs
- CodeTypeParameter.cs
- DelegateHelpers.Generated.cs
- EdmProperty.cs
- TaiwanLunisolarCalendar.cs
- WriteLineDesigner.xaml.cs
- SchemaComplexType.cs
- Decorator.cs
- TypeConverterValueSerializer.cs
- BadImageFormatException.cs
- RegexRunnerFactory.cs
- UriWriter.cs
- SecurityManager.cs
- SchemaAttDef.cs
- ObjectTypeMapping.cs
- NullExtension.cs
- CategoryGridEntry.cs
- ScriptIgnoreAttribute.cs
- OperationGenerator.cs
- PagerSettings.cs
- Types.cs
- CellPartitioner.cs
- PartitionResolver.cs
- ConsoleKeyInfo.cs
- MethodToken.cs
- SvcMapFile.cs
- FrugalList.cs
- HiddenField.cs
- FloaterParaClient.cs
- TextContainerChangedEventArgs.cs
- DoubleIndependentAnimationStorage.cs
- Int32AnimationUsingKeyFrames.cs
- NameValueFileSectionHandler.cs
- TemplateParser.cs
- SharedPersonalizationStateInfo.cs
- DataGridColumnHeaderAutomationPeer.cs
- TypeSource.cs
- MenuItemCollectionEditor.cs
- SqlUDTStorage.cs
- ToolTipAutomationPeer.cs
- CodeTypeReferenceCollection.cs
- TransactionScope.cs
- InheritanceContextChangedEventManager.cs
- DefaultValueTypeConverter.cs
- EventProxy.cs
- EntityContainerRelationshipSet.cs
- TargetParameterCountException.cs
- ChtmlLinkAdapter.cs
- UserMapPath.cs
- Int64.cs
- PathBox.cs
- DataGridViewRowEventArgs.cs
- OdbcFactory.cs
- GenericTypeParameterBuilder.cs
- CharacterString.cs
- TileBrush.cs
- StructuredTypeEmitter.cs
- VBCodeProvider.cs
- SmiMetaDataProperty.cs
- unsafenativemethodsother.cs
- HandleCollector.cs
- TransformBlockRequest.cs
- ScalarType.cs
- ScriptControlManager.cs
- PermissionRequestEvidence.cs
- SystemNetHelpers.cs
- TaskHelper.cs
- AssociationSetMetadata.cs
- XmlSchemaExporter.cs
- HMACSHA256.cs
- String.cs
- XDeferredAxisSource.cs
- TraceLog.cs
- MediaCommands.cs
- GPRECT.cs
- InArgumentConverter.cs
- ServiceProviders.cs
- XhtmlBasicControlAdapter.cs
- SamlAssertionDirectKeyIdentifierClause.cs
- TypeForwardedFromAttribute.cs
- ProcessModelInfo.cs
- SqlConnectionManager.cs
- TrustManagerMoreInformation.cs
- WebPartEditorCancelVerb.cs
- DefaultObjectMappingItemCollection.cs
- ApplicationManager.cs
- Encoding.cs
- FileUtil.cs
- FixedDSBuilder.cs
- AutoGeneratedFieldProperties.cs
- GZipDecoder.cs
- GraphicsPath.cs
- ChannelFactory.cs
- WebPartActionVerb.cs