Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / System / Windows / GridLength.cs / 1 / GridLength.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Grid length implementation
//
// See spec at http://avalon/layout/Specs/Star%20LengthUnit.mht
//
// History:
// 09/24/2003 : olego - Created (in griddy prototype branch);
// 10/27/2003 : olego - Ported from griddy prototype branch;
//
//---------------------------------------------------------------------------
using MS.Internal;
using System.ComponentModel;
using System.Globalization;
namespace System.Windows
{
///
/// GridUnitType enum is used to indicate what kind of value the
/// GridLength is holding.
///
// Note: Keep the GridUnitType enum in [....] with the string representation
// of units (GridLengthConverter._unitString).
public enum GridUnitType
{
///
/// The value indicates that content should be calculated without constraints.
///
Auto = 0,
///
/// The value is expressed as a pixel.
///
Pixel,
///
/// The value is expressed as a weighted proportion of available space.
///
Star,
}
///
/// GridLength is the type used for various length-like properties in the system,
/// that explicitely support Star unit type. For example, "Width", "Height"
/// properties of ColumnDefinition and RowDefinition used by Grid.
///
[TypeConverter(typeof(GridLengthConverter))]
public struct GridLength : IEquatable
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Constructor, initializes the GridLength as absolute value in pixels.
///
/// Specifies the number of 'device-independent pixels'
/// (96 pixels-per-inch).
///
/// If pixels parameter is double.NaN
/// or pixels parameter is double.NegativeInfinity
/// or pixels parameter is double.PositiveInfinity .
///
public GridLength(double pixels)
: this(pixels, GridUnitType.Pixel)
{
}
///
/// Constructor, initializes the GridLength and specifies what kind of value
/// it will hold.
///
/// Value to be stored by this GridLength
/// instance.
/// Type of the value to be stored by this GridLength
/// instance.
///
/// If the type parameter is GridUnitType.Auto ,
/// then passed in value is ignored and replaced with 0 .
///
///
/// If value parameter is double.NaN
/// or value parameter is double.NegativeInfinity
/// or value parameter is double.PositiveInfinity .
///
public GridLength(double value, GridUnitType type)
{
if (DoubleUtil.IsNaN(value))
{
throw new ArgumentException(SR.Get(SRID.InvalidCtorParameterNoNaN, "value"));
}
if (double.IsInfinity(value))
{
throw new ArgumentException(SR.Get(SRID.InvalidCtorParameterNoInfinity, "value"));
}
if ( type != GridUnitType.Auto
&& type != GridUnitType.Pixel
&& type != GridUnitType.Star )
{
throw new ArgumentException(SR.Get(SRID.InvalidCtorParameterUnknownGridUnitType, "type"));
}
_unitValue = (type == GridUnitType.Auto) ? 0.0 : value;
_unitType = type;
}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// Overloaded operator, compares 2 GridLength's.
///
/// first GridLength to compare.
/// second GridLength to compare.
/// true if specified GridLengths have same value
/// and unit type.
public static bool operator == (GridLength gl1, GridLength gl2)
{
return ( gl1.GridUnitType == gl2.GridUnitType
&& gl1.Value == gl2.Value );
}
///
/// Overloaded operator, compares 2 GridLength's.
///
/// first GridLength to compare.
/// second GridLength to compare.
/// true if specified GridLengths have either different value or
/// unit type.
public static bool operator != (GridLength gl1, GridLength gl2)
{
return ( gl1.GridUnitType != gl2.GridUnitType
|| gl1.Value != gl2.Value );
}
///
/// Compares this instance of GridLength with another object.
///
/// Reference to an object for comparison.
/// true if this GridLength instance has the same value
/// and unit type as oCompare.
override public bool Equals(object oCompare)
{
if(oCompare is GridLength)
{
GridLength l = (GridLength)oCompare;
return (this == l);
}
else
return false;
}
///
/// Compares this instance of GridLength with another instance.
///
/// Grid length instance to compare.
/// true if this GridLength instance has the same value
/// and unit type as gridLength.
public bool Equals(GridLength gridLength)
{
return (this == gridLength);
}
///
///
///
///
public override int GetHashCode()
{
return ((int)_unitValue + (int)_unitType);
}
///
/// Returns true if this GridLength instance holds
/// an absolute (pixel) value.
///
public bool IsAbsolute { get { return (_unitType == GridUnitType.Pixel); } }
///
/// Returns true if this GridLength instance is
/// automatic (not specified).
///
public bool IsAuto { get { return (_unitType == GridUnitType.Auto); } }
///
/// Returns true if this GridLength instance holds weighted propertion
/// of available space.
///
public bool IsStar { get { return (_unitType == GridUnitType.Star); } }
///
/// Returns value part of this GridLength instance.
///
public double Value { get { return ((_unitType == GridUnitType.Auto) ? 1.0 : _unitValue); } }
///
/// Returns unit type of this GridLength instance.
///
public GridUnitType GridUnitType { get { return (_unitType); } }
///
/// Returns the string representation of this object.
///
public override string ToString()
{
return GridLengthConverter.ToString(this, CultureInfo.InvariantCulture);
}
#endregion Public Methods
//------------------------------------------------------
//
// Public Properties
//
//------------------------------------------------------
#region Public Properties
///
/// Returns initialized Auto GridLength value.
///
public static GridLength Auto
{
get { return (s_auto); }
}
#endregion Public Properties
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
#region Private Fields
private double _unitValue; // unit value storage
private GridUnitType _unitType; // unit type storage
// static instance of Auto GridLength
private static readonly GridLength s_auto = new GridLength(1.0, GridUnitType.Auto);
#endregion Private Fields
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Grid length implementation
//
// See spec at http://avalon/layout/Specs/Star%20LengthUnit.mht
//
// History:
// 09/24/2003 : olego - Created (in griddy prototype branch);
// 10/27/2003 : olego - Ported from griddy prototype branch;
//
//---------------------------------------------------------------------------
using MS.Internal;
using System.ComponentModel;
using System.Globalization;
namespace System.Windows
{
///
/// GridUnitType enum is used to indicate what kind of value the
/// GridLength is holding.
///
// Note: Keep the GridUnitType enum in [....] with the string representation
// of units (GridLengthConverter._unitString).
public enum GridUnitType
{
///
/// The value indicates that content should be calculated without constraints.
///
Auto = 0,
///
/// The value is expressed as a pixel.
///
Pixel,
///
/// The value is expressed as a weighted proportion of available space.
///
Star,
}
///
/// GridLength is the type used for various length-like properties in the system,
/// that explicitely support Star unit type. For example, "Width", "Height"
/// properties of ColumnDefinition and RowDefinition used by Grid.
///
[TypeConverter(typeof(GridLengthConverter))]
public struct GridLength : IEquatable
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Constructor, initializes the GridLength as absolute value in pixels.
///
/// Specifies the number of 'device-independent pixels'
/// (96 pixels-per-inch).
///
/// If pixels parameter is double.NaN
/// or pixels parameter is double.NegativeInfinity
/// or pixels parameter is double.PositiveInfinity .
///
public GridLength(double pixels)
: this(pixels, GridUnitType.Pixel)
{
}
///
/// Constructor, initializes the GridLength and specifies what kind of value
/// it will hold.
///
/// Value to be stored by this GridLength
/// instance.
/// Type of the value to be stored by this GridLength
/// instance.
///
/// If the type parameter is GridUnitType.Auto ,
/// then passed in value is ignored and replaced with 0 .
///
///
/// If value parameter is double.NaN
/// or value parameter is double.NegativeInfinity
/// or value parameter is double.PositiveInfinity .
///
public GridLength(double value, GridUnitType type)
{
if (DoubleUtil.IsNaN(value))
{
throw new ArgumentException(SR.Get(SRID.InvalidCtorParameterNoNaN, "value"));
}
if (double.IsInfinity(value))
{
throw new ArgumentException(SR.Get(SRID.InvalidCtorParameterNoInfinity, "value"));
}
if ( type != GridUnitType.Auto
&& type != GridUnitType.Pixel
&& type != GridUnitType.Star )
{
throw new ArgumentException(SR.Get(SRID.InvalidCtorParameterUnknownGridUnitType, "type"));
}
_unitValue = (type == GridUnitType.Auto) ? 0.0 : value;
_unitType = type;
}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// Overloaded operator, compares 2 GridLength's.
///
/// first GridLength to compare.
/// second GridLength to compare.
/// true if specified GridLengths have same value
/// and unit type.
public static bool operator == (GridLength gl1, GridLength gl2)
{
return ( gl1.GridUnitType == gl2.GridUnitType
&& gl1.Value == gl2.Value );
}
///
/// Overloaded operator, compares 2 GridLength's.
///
/// first GridLength to compare.
/// second GridLength to compare.
/// true if specified GridLengths have either different value or
/// unit type.
public static bool operator != (GridLength gl1, GridLength gl2)
{
return ( gl1.GridUnitType != gl2.GridUnitType
|| gl1.Value != gl2.Value );
}
///
/// Compares this instance of GridLength with another object.
///
/// Reference to an object for comparison.
/// true if this GridLength instance has the same value
/// and unit type as oCompare.
override public bool Equals(object oCompare)
{
if(oCompare is GridLength)
{
GridLength l = (GridLength)oCompare;
return (this == l);
}
else
return false;
}
///
/// Compares this instance of GridLength with another instance.
///
/// Grid length instance to compare.
/// true if this GridLength instance has the same value
/// and unit type as gridLength.
public bool Equals(GridLength gridLength)
{
return (this == gridLength);
}
///
///
///
///
public override int GetHashCode()
{
return ((int)_unitValue + (int)_unitType);
}
///
/// Returns true if this GridLength instance holds
/// an absolute (pixel) value.
///
public bool IsAbsolute { get { return (_unitType == GridUnitType.Pixel); } }
///
/// Returns true if this GridLength instance is
/// automatic (not specified).
///
public bool IsAuto { get { return (_unitType == GridUnitType.Auto); } }
///
/// Returns true if this GridLength instance holds weighted propertion
/// of available space.
///
public bool IsStar { get { return (_unitType == GridUnitType.Star); } }
///
/// Returns value part of this GridLength instance.
///
public double Value { get { return ((_unitType == GridUnitType.Auto) ? 1.0 : _unitValue); } }
///
/// Returns unit type of this GridLength instance.
///
public GridUnitType GridUnitType { get { return (_unitType); } }
///
/// Returns the string representation of this object.
///
public override string ToString()
{
return GridLengthConverter.ToString(this, CultureInfo.InvariantCulture);
}
#endregion Public Methods
//------------------------------------------------------
//
// Public Properties
//
//------------------------------------------------------
#region Public Properties
///
/// Returns initialized Auto GridLength value.
///
public static GridLength Auto
{
get { return (s_auto); }
}
#endregion Public Properties
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
#region Private Fields
private double _unitValue; // unit value storage
private GridUnitType _unitType; // unit type storage
// static instance of Auto GridLength
private static readonly GridLength s_auto = new GridLength(1.0, GridUnitType.Auto);
#endregion Private Fields
}
}
// 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
- SoapAttributeAttribute.cs
- SchemaSetCompiler.cs
- UInt32.cs
- CollectionViewGroupInternal.cs
- SinglePageViewer.cs
- DataGridColumnReorderingEventArgs.cs
- PointCollectionConverter.cs
- ReferentialConstraintRoleElement.cs
- TextEditorCharacters.cs
- UshortList2.cs
- AppDomainFactory.cs
- TextEditorSelection.cs
- LeaseManager.cs
- BinaryObjectInfo.cs
- MetabaseSettings.cs
- XmlSchemaAttributeGroup.cs
- BamlBinaryReader.cs
- DefaultHttpHandler.cs
- StringInfo.cs
- ServiceOperation.cs
- CustomTypeDescriptor.cs
- HttpResponse.cs
- OleDbRowUpdatingEvent.cs
- PrintingPermission.cs
- ToolStripDropDownMenu.cs
- Automation.cs
- OSFeature.cs
- DragEventArgs.cs
- PersonalizationStateQuery.cs
- SpecularMaterial.cs
- PropertyInformation.cs
- DataServiceClientException.cs
- Int32CollectionConverter.cs
- NavigatorOutput.cs
- InputGestureCollection.cs
- LabelTarget.cs
- AssemblyAttributes.cs
- StringAttributeCollection.cs
- NCryptSafeHandles.cs
- IssuedTokensHeader.cs
- ValidationResult.cs
- Literal.cs
- HttpEncoder.cs
- ContentPosition.cs
- BulletChrome.cs
- ToolStripSeparator.cs
- UriTemplateVariableQueryValue.cs
- UIElementIsland.cs
- DiagnosticsConfiguration.cs
- MergeFailedEvent.cs
- ParameterReplacerVisitor.cs
- SchemaObjectWriter.cs
- IisTraceWebEventProvider.cs
- BitmapMetadataEnumerator.cs
- ButtonPopupAdapter.cs
- AuthenticateEventArgs.cs
- RowBinding.cs
- HttpClientCertificate.cs
- InvalidProgramException.cs
- ReadOnlyCollectionBuilder.cs
- DSACryptoServiceProvider.cs
- TypeDescriptor.cs
- DataSourceHelper.cs
- InvalidChannelBindingException.cs
- CancelRequestedRecord.cs
- ObjectStateManagerMetadata.cs
- WindowsSolidBrush.cs
- ChangeBlockUndoRecord.cs
- Message.cs
- SettingsAttributes.cs
- WebPartEditorApplyVerb.cs
- Application.cs
- RectAnimationBase.cs
- xdrvalidator.cs
- EUCJPEncoding.cs
- WebReferencesBuildProvider.cs
- CookielessData.cs
- WebControlsSection.cs
- CompositeActivityTypeDescriptorProvider.cs
- RotateTransform3D.cs
- Window.cs
- SelectionItemPattern.cs
- ComponentChangedEvent.cs
- AudioFormatConverter.cs
- DataObjectCopyingEventArgs.cs
- Interlocked.cs
- ConnectionPointCookie.cs
- EncoderExceptionFallback.cs
- Message.cs
- LineSegment.cs
- GroupBoxAutomationPeer.cs
- NameValueCollection.cs
- GenerateHelper.cs
- JsonCollectionDataContract.cs
- RegexInterpreter.cs
- SqlDataSourceSummaryPanel.cs
- EntitySqlException.cs
- ProfileSection.cs
- WhitespaceRuleLookup.cs
- AccessedThroughPropertyAttribute.cs