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
- StylusPointCollection.cs
- DataGridViewIntLinkedList.cs
- Fonts.cs
- LinqMaximalSubtreeNominator.cs
- RectKeyFrameCollection.cs
- ResourceCategoryAttribute.cs
- PrintPreviewGraphics.cs
- CompilerTypeWithParams.cs
- DbSetClause.cs
- precedingsibling.cs
- TraceListeners.cs
- FileEnumerator.cs
- Currency.cs
- IApplicationTrustManager.cs
- HtmlWindowCollection.cs
- SpotLight.cs
- DataRelationCollection.cs
- ExecutorLocksHeldException.cs
- Column.cs
- SchemaElementLookUpTable.cs
- WindowsIPAddress.cs
- SessionStateUtil.cs
- SystemPens.cs
- IdentifierService.cs
- TraceInternal.cs
- DynamicQueryableWrapper.cs
- SqlDependencyUtils.cs
- ExpressionList.cs
- Missing.cs
- SerializationSectionGroup.cs
- DynamicHyperLink.cs
- ByteStream.cs
- PanelStyle.cs
- InvariantComparer.cs
- RSAPKCS1KeyExchangeFormatter.cs
- RepeaterCommandEventArgs.cs
- XmlSchemaRedefine.cs
- ModelTreeEnumerator.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- ValuePattern.cs
- SafeFreeMibTable.cs
- ValidationSummary.cs
- GetWinFXPath.cs
- TemplatePagerField.cs
- DataTableReaderListener.cs
- ToolboxItemImageConverter.cs
- ExpressionConverter.cs
- TypeSystemHelpers.cs
- ActivityBindForm.Designer.cs
- SourceChangedEventArgs.cs
- CommandHelpers.cs
- PathSegment.cs
- Page.cs
- Message.cs
- ToolStripTextBox.cs
- RectIndependentAnimationStorage.cs
- RoutingTable.cs
- MaskInputRejectedEventArgs.cs
- SplitterEvent.cs
- Resources.Designer.cs
- XmlSchemas.cs
- CharStorage.cs
- InvokeProviderWrapper.cs
- UnsafeNativeMethods.cs
- ResXDataNode.cs
- SqlAggregateChecker.cs
- streamingZipPartStream.cs
- CounterSampleCalculator.cs
- TextElementEnumerator.cs
- XmlSchemaInclude.cs
- SiteMapNodeItem.cs
- DBSchemaRow.cs
- prefixendpointaddressmessagefilter.cs
- DropSourceBehavior.cs
- XmlElementAttribute.cs
- HotSpot.cs
- TextMarkerSource.cs
- AssemblyCollection.cs
- SmtpNtlmAuthenticationModule.cs
- XmlResolver.cs
- COM2ExtendedTypeConverter.cs
- StickyNoteContentControl.cs
- Menu.cs
- StrongName.cs
- XamlSerializerUtil.cs
- DataSetViewSchema.cs
- SqlDataSourceFilteringEventArgs.cs
- SchemaTypeEmitter.cs
- PersistenceException.cs
- ResolveCriteria11.cs
- cookieexception.cs
- SchemaNotation.cs
- Image.cs
- ProcessRequestArgs.cs
- InputBindingCollection.cs
- CriticalFinalizerObject.cs
- EventTrigger.cs
- ItemsPanelTemplate.cs
- EndpointPerformanceCounters.cs
- TextTrailingCharacterEllipsis.cs