Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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.
//
//-----------------------------------------------------------------------------
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FlowNode.cs
- CatalogPart.cs
- Literal.cs
- XamlDesignerSerializationManager.cs
- JulianCalendar.cs
- WebPartMenuStyle.cs
- WebServiceParameterData.cs
- XmlSchemaResource.cs
- AttributeQuery.cs
- DataObjectEventArgs.cs
- WebPartTransformerAttribute.cs
- LocalizeDesigner.cs
- DelegateHelpers.cs
- DataList.cs
- TdsParserStateObject.cs
- PTUtility.cs
- IPipelineRuntime.cs
- RequestStatusBarUpdateEventArgs.cs
- InputScope.cs
- MatrixAnimationBase.cs
- NameObjectCollectionBase.cs
- TriggerActionCollection.cs
- ParameterCollectionEditorForm.cs
- RegexParser.cs
- WorkflowWebHostingModule.cs
- MenuItemBinding.cs
- HybridObjectCache.cs
- FloaterParagraph.cs
- PolyBezierSegment.cs
- FormViewDeletedEventArgs.cs
- RegexCharClass.cs
- NavigationPropertyAccessor.cs
- SoapWriter.cs
- HierarchicalDataTemplate.cs
- HttpChannelHelper.cs
- SqlParameterizer.cs
- SnapshotChangeTrackingStrategy.cs
- UnionCodeGroup.cs
- ClientRuntimeConfig.cs
- Sequence.cs
- InvalidOleVariantTypeException.cs
- ReachFixedPageSerializerAsync.cs
- StateFinalizationDesigner.cs
- XmlBaseWriter.cs
- TextServicesPropertyRanges.cs
- SecurityTokenResolver.cs
- EncodingConverter.cs
- ObjectStateFormatter.cs
- WebPartTracker.cs
- WindowsProgressbar.cs
- EntityParameter.cs
- OptimalTextSource.cs
- Size.cs
- SystemException.cs
- BrushConverter.cs
- ColumnPropertiesGroup.cs
- SmiContext.cs
- ThicknessAnimationBase.cs
- CachedPathData.cs
- EnumDataContract.cs
- ProfileManager.cs
- DesignerDataColumn.cs
- MergeFilterQuery.cs
- WorkflowDebuggerSteppingAttribute.cs
- SequenceDesignerAccessibleObject.cs
- SchemaAttDef.cs
- IOException.cs
- SqlReferenceCollection.cs
- BitVector32.cs
- WhitespaceRuleReader.cs
- CodeConstructor.cs
- DataTableClearEvent.cs
- NativeMethods.cs
- TransactionState.cs
- HijriCalendar.cs
- SizeKeyFrameCollection.cs
- FilterableAttribute.cs
- ValueUnavailableException.cs
- HostedImpersonationContext.cs
- DatagramAdapter.cs
- FacetChecker.cs
- AuthorizationPolicyTypeElement.cs
- ScriptingRoleServiceSection.cs
- FullTextLine.cs
- DrawingGroup.cs
- HttpListenerException.cs
- DataSpaceManager.cs
- ResourcesBuildProvider.cs
- TreeIterators.cs
- ComponentDispatcherThread.cs
- StreamingContext.cs
- BaseParaClient.cs
- ProjectionPlan.cs
- QilReplaceVisitor.cs
- ResourceWriter.cs
- RelationshipDetailsRow.cs
- VerificationException.cs
- RemoteWebConfigurationHostServer.cs
- DataControlButton.cs
- Attributes.cs