Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / CommonUI / System / Drawing / Size.cs / 1 / Size.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*************************************************************************\
*
* Copyright (c) 1998-1999, Microsoft Corp. All Rights Reserved.
*
* Module Name:
*
* Size.cs
*
* Abstract:
*
* Integer-point coordinate size class
*
* Revision History:
*
* 2/4/2k [....]
* Created it.
*
\**************************************************************************/
namespace System.Drawing {
using System.Runtime.Serialization.Formatters;
using System.Diagnostics;
using System;
using System.IO;
using Microsoft.Win32;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
/**
* Represents a dimension in 2D coordinate space
*/
///
///
/// Represents the size of a rectangular region
/// with an ordered pair of width and height.
///
[
TypeConverterAttribute(typeof(SizeConverter)),
]
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
[SuppressMessage("Microsoft.Usage", "CA2225:OperatorOverloadsHaveNamedAlternates")]
public struct Size {
///
///
/// Initializes a new instance of the class.
///
public static readonly Size Empty = new Size();
private int width;
private int height;
/**
* Create a new Size object from a point
*/
///
///
///
/// Initializes a new instance of the class from
/// the specified .
///
///
public Size(Point pt) {
width = pt.X;
height = pt.Y;
}
/**
* Create a new Size object of the specified dimension
*/
///
///
/// Initializes a new instance of the class from
/// the specified dimensions.
///
public Size(int width, int height) {
this.width = width;
this.height = height;
}
///
///
/// Converts the specified to a
/// .
///
public static implicit operator SizeF(Size p) {
return new SizeF(p.Width, p.Height);
}
///
///
///
/// Performs vector addition of two objects.
///
///
public static Size operator +(Size sz1, Size sz2) {
return Add(sz1, sz2);
}
///
///
///
/// Contracts a by another
/// .
///
///
public static Size operator -(Size sz1, Size sz2) {
return Subtract(sz1, sz2);
}
///
///
/// Tests whether two objects
/// are identical.
///
public static bool operator ==(Size sz1, Size sz2) {
return sz1.Width == sz2.Width && sz1.Height == sz2.Height;
}
///
///
///
/// Tests whether two objects are different.
///
///
public static bool operator !=(Size sz1, Size sz2) {
return !(sz1 == sz2);
}
///
///
/// Converts the specified to a
/// .
///
public static explicit operator Point(Size size) {
return new Point(size.Width, size.Height);
}
///
///
/// Tests whether this has zero
/// width and height.
///
[Browsable(false)]
public bool IsEmpty {
get {
return width == 0 && height == 0;
}
}
/**
* Horizontal dimension
*/
///
///
///
/// Represents the horizontal component of this
/// .
///
///
public int Width {
get {
return width;
}
set {
width = value;
}
}
/**
* Vertical dimension
*/
///
///
/// Represents the vertical component of this
/// .
///
public int Height {
get {
return height;
}
set {
height = value;
}
}
///
///
/// Performs vector addition of two objects.
///
///
public static Size Add(Size sz1, Size sz2) {
return new Size(sz1.Width + sz2.Width, sz1.Height + sz2.Height);
}
///
///
/// Converts a SizeF to a Size by performing a ceiling operation on
/// all the coordinates.
///
public static Size Ceiling(SizeF value) {
return new Size((int)Math.Ceiling(value.Width), (int)Math.Ceiling(value.Height));
}
///
///
/// Contracts a by another .
///
///
public static Size Subtract(Size sz1, Size sz2) {
return new Size(sz1.Width - sz2.Width, sz1.Height - sz2.Height);
}
///
///
/// Converts a SizeF to a Size by performing a truncate operation on
/// all the coordinates.
///
public static Size Truncate(SizeF value) {
return new Size((int)value.Width, (int)value.Height);
}
///
///
/// Converts a SizeF to a Size by performing a round operation on
/// all the coordinates.
///
public static Size Round(SizeF value) {
return new Size((int)Math.Round(value.Width), (int)Math.Round(value.Height));
}
///
///
///
/// Tests to see whether the specified object is a
///
/// with the same dimensions as this .
///
///
public override bool Equals(object obj) {
if (!(obj is Size))
return false;
Size comp = (Size)obj;
// Note value types can't have derived classes, so we don't need to
// check the types of the objects here. -- [....], 2/21/2001
return (comp.width == this.width) &&
(comp.height == this.height);
}
///
///
///
/// Returns a hash code.
///
///
public override int GetHashCode() {
return width ^ height;
}
///
///
///
/// Creates a human-readable string that represents this
/// .
///
///
public override string ToString() {
return "{Width=" + width.ToString(CultureInfo.CurrentCulture) + ", Height=" + height.ToString(CultureInfo.CurrentCulture) + "}";
}
}
}
// 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
- NativeMethods.cs
- KeyedCollection.cs
- errorpatternmatcher.cs
- Operators.cs
- Shape.cs
- ISSmlParser.cs
- EntityContainerEntitySetDefiningQuery.cs
- ZipIOCentralDirectoryFileHeader.cs
- HotSpotCollection.cs
- Line.cs
- DataSourceXmlSerializer.cs
- Debugger.cs
- HTMLTextWriter.cs
- TrueReadOnlyCollection.cs
- PointValueSerializer.cs
- WebEncodingValidator.cs
- EventEntry.cs
- InternalControlCollection.cs
- SystemNetworkInterface.cs
- HttpDebugHandler.cs
- StrongNameUtility.cs
- EarlyBoundInfo.cs
- WebEventCodes.cs
- SmtpDateTime.cs
- StatusStrip.cs
- ComPlusSynchronizationContext.cs
- XmlSignificantWhitespace.cs
- ExpressionVisitor.cs
- InstanceLockQueryResult.cs
- SpellCheck.cs
- TrackingCondition.cs
- RuleElement.cs
- GlyphRunDrawing.cs
- ContourSegment.cs
- DesignTimeValidationFeature.cs
- TextOnlyOutput.cs
- FlowchartDesigner.Helpers.cs
- SelectionProviderWrapper.cs
- Duration.cs
- UseLicense.cs
- BidirectionalDictionary.cs
- TaskSchedulerException.cs
- VirtualizingPanel.cs
- SoapAttributeAttribute.cs
- PostBackOptions.cs
- RegistrySecurity.cs
- AuthorizationRuleCollection.cs
- DataTable.cs
- TimeSpanStorage.cs
- _ListenerRequestStream.cs
- OracleInternalConnection.cs
- GroupItem.cs
- xmlglyphRunInfo.cs
- MetadataElement.cs
- SafeFileMappingHandle.cs
- SignatureHelper.cs
- XmlElement.cs
- TdsParserSafeHandles.cs
- DmlSqlGenerator.cs
- GeneralTransform3DTo2D.cs
- keycontainerpermission.cs
- StateManagedCollection.cs
- SerialPort.cs
- CustomCategoryAttribute.cs
- SimpleHandlerBuildProvider.cs
- DesignerActionKeyboardBehavior.cs
- Lease.cs
- AssertHelper.cs
- CrossSiteScriptingValidation.cs
- DataMisalignedException.cs
- RuntimeConfig.cs
- SafeCryptContextHandle.cs
- NumericUpDownAccelerationCollection.cs
- SRGSCompiler.cs
- UnsafeMethods.cs
- FixedSOMGroup.cs
- PageSettings.cs
- ExceptionHandler.cs
- ListDictionaryInternal.cs
- SelectionEditor.cs
- SmiSettersStream.cs
- XmlDomTextWriter.cs
- SolidColorBrush.cs
- LocalizableAttribute.cs
- ZeroOpNode.cs
- CellNormalizer.cs
- EventProviderTraceListener.cs
- CatalogZoneBase.cs
- Panel.cs
- BitSet.cs
- SqlBuffer.cs
- EntityUtil.cs
- X509UI.cs
- Assert.cs
- CodeDelegateCreateExpression.cs
- HtmlValidationSummaryAdapter.cs
- StrongName.cs
- ExeConfigurationFileMap.cs
- WebBrowserEvent.cs
- QuaternionValueSerializer.cs