Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / Media / Animation / KeyTime.cs / 1 / KeyTime.cs
// KeyTime.cs
// Allow suppression of certain presharp messages
#pragma warning disable 1634, 1691
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Runtime.InteropServices;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media.Animation
{
///
/// A KeyTime is use to specify when relative to the time of an animation
/// that a KeyFrame takes place.
///
[TypeConverter(typeof(KeyTimeConverter))]
public struct KeyTime : IEquatable
{
private object _value;
private KeyTimeType _type;
#region Static Create Methods
///
/// Creates a KeyTime that represents a Percent value.
///
///
/// The percent value provided as a double value between 0.0 and 1.0.
///
public static KeyTime FromPercent(double percent)
{
if (percent < 0.0 || percent > 1.0)
{
throw new ArgumentOutOfRangeException("percent", SR.Get(SRID.Animation_KeyTime_InvalidPercentValue, percent));
}
KeyTime keyTime = new KeyTime();
keyTime._value = percent;
keyTime._type = KeyTimeType.Percent;
return keyTime;
}
///
///
///
///
public static KeyTime FromTimeSpan(TimeSpan timeSpan)
{
if (timeSpan < TimeSpan.Zero)
{
throw new ArgumentOutOfRangeException("timeSpan", SR.Get(SRID.Animation_KeyTime_LessThanZero, timeSpan));
}
KeyTime keyTime = new KeyTime();
keyTime._value = timeSpan;
keyTime._type = KeyTimeType.TimeSpan;
return keyTime;
}
///
///
///
///
public static KeyTime Uniform
{
get
{
KeyTime keyTime = new KeyTime();
keyTime._type = KeyTimeType.Uniform;
return keyTime;
}
}
///
///
///
///
public static KeyTime Paced
{
get
{
KeyTime keyTime = new KeyTime();
keyTime._type = KeyTimeType.Paced;
return keyTime;
}
}
#endregion
#region Operators
///
/// Returns true if two KeyTimes are equal.
///
public static bool Equals(KeyTime keyTime1, KeyTime keyTime2)
{
if (keyTime1._type == keyTime2._type)
{
switch (keyTime1._type)
{
case KeyTimeType.Uniform:
break;
case KeyTimeType.Paced:
break;
case KeyTimeType.Percent:
if ((double)keyTime1._value != (double)keyTime2._value)
{
return false;
}
break;
case KeyTimeType.TimeSpan:
if ((TimeSpan)keyTime1._value != (TimeSpan)keyTime2._value)
{
return false;
}
break;
}
return true;
}
else
{
return false;
}
}
///
/// Returns true if two KeyTimes are equal.
///
public static bool operator ==(KeyTime keyTime1, KeyTime keyTime2)
{
return KeyTime.Equals(keyTime1, keyTime2);
}
///
/// Returns true if two KeyTimes are not equal.
///
public static bool operator !=(KeyTime keyTime1, KeyTime keyTime2)
{
return !KeyTime.Equals(keyTime1, keyTime2);
}
#endregion
#region IEquatable
///
/// Returns true if two KeyTimes are equal.
///
public bool Equals(KeyTime value)
{
return KeyTime.Equals(this, value);
}
#endregion
#region Object Overrides
///
/// Implementation of Object.Equals .
///
public override bool Equals(object value)
{
if ( value == null
|| !(value is KeyTime))
{
return false;
}
return this == (KeyTime)value;
}
///
/// Implementation of Object.GetHashCode .
///
public override int GetHashCode()
{
// If we don't have a value (uniform, or paced) then use the type
// to determine the hash code
if (_value != null)
{
return _value.GetHashCode();
}
else
{
return _type.GetHashCode();
}
}
///
/// Generates a string representing this KeyTime.
///
/// The generated string.
public override string ToString()
{
KeyTimeConverter converter = new KeyTimeConverter();
return converter.ConvertToString(this);
}
#endregion
#region Implicit Converters
///
/// Implicitly creates a KeyTime value from a Time value.
///
/// The Time value.
/// A new KeyTime.
public static implicit operator KeyTime(TimeSpan timeSpan)
{
return KeyTime.FromTimeSpan(timeSpan);
}
#endregion
#region Public Properties
///
/// The Time value for this KeyTime.
///
///
/// Thrown if the type of this KeyTime isn't KeyTimeType.TimeSpan.
///
public TimeSpan TimeSpan
{
get
{
if (_type == KeyTimeType.TimeSpan)
{
return (TimeSpan)_value;
}
else
{
#pragma warning suppress 56503 // Suppress presharp warning: Follows a pattern similar to Nullable.
throw new InvalidOperationException();
}
}
}
///
/// The percent value for this KeyTime.
///
///
/// Thrown if the type of this KeyTime isn't KeyTimeType.Percent.
///
public double Percent
{
get
{
if (_type == KeyTimeType.Percent)
{
return (double)_value;
}
else
{
#pragma warning suppress 56503 // Suppress presharp warning: Follows a pattern similar to Nullable.
throw new InvalidOperationException();
}
}
}
///
/// The type of this KeyTime.
///
public KeyTimeType Type
{
get
{
return _type;
}
}
#endregion
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
// KeyTime.cs
// Allow suppression of certain presharp messages
#pragma warning disable 1634, 1691
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Runtime.InteropServices;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media.Animation
{
///
/// A KeyTime is use to specify when relative to the time of an animation
/// that a KeyFrame takes place.
///
[TypeConverter(typeof(KeyTimeConverter))]
public struct KeyTime : IEquatable
{
private object _value;
private KeyTimeType _type;
#region Static Create Methods
///
/// Creates a KeyTime that represents a Percent value.
///
///
/// The percent value provided as a double value between 0.0 and 1.0.
///
public static KeyTime FromPercent(double percent)
{
if (percent < 0.0 || percent > 1.0)
{
throw new ArgumentOutOfRangeException("percent", SR.Get(SRID.Animation_KeyTime_InvalidPercentValue, percent));
}
KeyTime keyTime = new KeyTime();
keyTime._value = percent;
keyTime._type = KeyTimeType.Percent;
return keyTime;
}
///
///
///
///
public static KeyTime FromTimeSpan(TimeSpan timeSpan)
{
if (timeSpan < TimeSpan.Zero)
{
throw new ArgumentOutOfRangeException("timeSpan", SR.Get(SRID.Animation_KeyTime_LessThanZero, timeSpan));
}
KeyTime keyTime = new KeyTime();
keyTime._value = timeSpan;
keyTime._type = KeyTimeType.TimeSpan;
return keyTime;
}
///
///
///
///
public static KeyTime Uniform
{
get
{
KeyTime keyTime = new KeyTime();
keyTime._type = KeyTimeType.Uniform;
return keyTime;
}
}
///
///
///
///
public static KeyTime Paced
{
get
{
KeyTime keyTime = new KeyTime();
keyTime._type = KeyTimeType.Paced;
return keyTime;
}
}
#endregion
#region Operators
///
/// Returns true if two KeyTimes are equal.
///
public static bool Equals(KeyTime keyTime1, KeyTime keyTime2)
{
if (keyTime1._type == keyTime2._type)
{
switch (keyTime1._type)
{
case KeyTimeType.Uniform:
break;
case KeyTimeType.Paced:
break;
case KeyTimeType.Percent:
if ((double)keyTime1._value != (double)keyTime2._value)
{
return false;
}
break;
case KeyTimeType.TimeSpan:
if ((TimeSpan)keyTime1._value != (TimeSpan)keyTime2._value)
{
return false;
}
break;
}
return true;
}
else
{
return false;
}
}
///
/// Returns true if two KeyTimes are equal.
///
public static bool operator ==(KeyTime keyTime1, KeyTime keyTime2)
{
return KeyTime.Equals(keyTime1, keyTime2);
}
///
/// Returns true if two KeyTimes are not equal.
///
public static bool operator !=(KeyTime keyTime1, KeyTime keyTime2)
{
return !KeyTime.Equals(keyTime1, keyTime2);
}
#endregion
#region IEquatable
///
/// Returns true if two KeyTimes are equal.
///
public bool Equals(KeyTime value)
{
return KeyTime.Equals(this, value);
}
#endregion
#region Object Overrides
///
/// Implementation of Object.Equals .
///
public override bool Equals(object value)
{
if ( value == null
|| !(value is KeyTime))
{
return false;
}
return this == (KeyTime)value;
}
///
/// Implementation of Object.GetHashCode .
///
public override int GetHashCode()
{
// If we don't have a value (uniform, or paced) then use the type
// to determine the hash code
if (_value != null)
{
return _value.GetHashCode();
}
else
{
return _type.GetHashCode();
}
}
///
/// Generates a string representing this KeyTime.
///
/// The generated string.
public override string ToString()
{
KeyTimeConverter converter = new KeyTimeConverter();
return converter.ConvertToString(this);
}
#endregion
#region Implicit Converters
///
/// Implicitly creates a KeyTime value from a Time value.
///
/// The Time value.
/// A new KeyTime.
public static implicit operator KeyTime(TimeSpan timeSpan)
{
return KeyTime.FromTimeSpan(timeSpan);
}
#endregion
#region Public Properties
///
/// The Time value for this KeyTime.
///
///
/// Thrown if the type of this KeyTime isn't KeyTimeType.TimeSpan.
///
public TimeSpan TimeSpan
{
get
{
if (_type == KeyTimeType.TimeSpan)
{
return (TimeSpan)_value;
}
else
{
#pragma warning suppress 56503 // Suppress presharp warning: Follows a pattern similar to Nullable.
throw new InvalidOperationException();
}
}
}
///
/// The percent value for this KeyTime.
///
///
/// Thrown if the type of this KeyTime isn't KeyTimeType.Percent.
///
public double Percent
{
get
{
if (_type == KeyTimeType.Percent)
{
return (double)_value;
}
else
{
#pragma warning suppress 56503 // Suppress presharp warning: Follows a pattern similar to Nullable.
throw new InvalidOperationException();
}
}
}
///
/// The type of this KeyTime.
///
public KeyTimeType Type
{
get
{
return _type;
}
}
#endregion
}
}
// 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
- TableLayoutRowStyleCollection.cs
- BlurBitmapEffect.cs
- PropertyItem.cs
- Point.cs
- DataGridCellAutomationPeer.cs
- AttributeQuery.cs
- XmlValidatingReader.cs
- WebBrowserContainer.cs
- ResourceWriter.cs
- QueryExecutionOption.cs
- TreeNodeMouseHoverEvent.cs
- VisualTreeHelper.cs
- PasswordTextContainer.cs
- Scanner.cs
- ScriptHandlerFactory.cs
- BuildProvider.cs
- ColumnPropertiesGroup.cs
- WebPartsPersonalization.cs
- ContainerUIElement3D.cs
- EdmComplexPropertyAttribute.cs
- ScriptingWebServicesSectionGroup.cs
- DataGridTextBox.cs
- EventListener.cs
- HttpProfileGroupBase.cs
- XPathParser.cs
- Evaluator.cs
- TileBrush.cs
- WorkflowPersistenceService.cs
- EventHandlersStore.cs
- RenderingBiasValidation.cs
- Pair.cs
- ThreadAttributes.cs
- VectorValueSerializer.cs
- ResourceLoader.cs
- ThrowHelper.cs
- WebPartsPersonalization.cs
- EmptyReadOnlyDictionaryInternal.cs
- ThemeInfoAttribute.cs
- HTMLTagNameToTypeMapper.cs
- FieldMetadata.cs
- EntityCollectionChangedParams.cs
- RecognizerInfo.cs
- BitmapInitialize.cs
- Point3DCollection.cs
- odbcmetadatacollectionnames.cs
- HttpCacheVary.cs
- ObjectSpanRewriter.cs
- DefaultBinder.cs
- EntityDescriptor.cs
- KerberosReceiverSecurityToken.cs
- XamlInt32CollectionSerializer.cs
- XPathSelectionIterator.cs
- AutomationIdentifierGuids.cs
- RequiredAttributeAttribute.cs
- HostAdapter.cs
- BigInt.cs
- TextEditorDragDrop.cs
- SafeLibraryHandle.cs
- LoginUtil.cs
- ViewBox.cs
- DataGridViewButtonColumn.cs
- SpeakInfo.cs
- BitmapVisualManager.cs
- FormsAuthenticationUser.cs
- SmiMetaDataProperty.cs
- SBCSCodePageEncoding.cs
- TracingConnection.cs
- StateDesigner.CommentLayoutGlyph.cs
- TypedTableBaseExtensions.cs
- EdmProviderManifest.cs
- SymbolResolver.cs
- ButtonChrome.cs
- RepeaterItem.cs
- LogEntrySerializationException.cs
- Selection.cs
- PolicyException.cs
- HttpResponseInternalWrapper.cs
- GuidConverter.cs
- MultipartIdentifier.cs
- TdsParameterSetter.cs
- ButtonDesigner.cs
- VolatileEnlistmentState.cs
- Size3D.cs
- ElementUtil.cs
- AvTraceFormat.cs
- basenumberconverter.cs
- XmlReflectionImporter.cs
- ExpressionCopier.cs
- WindowsListViewItemCheckBox.cs
- ThreadStateException.cs
- COM2Enum.cs
- ToolStripLabel.cs
- DataGridHelper.cs
- QilVisitor.cs
- HandledEventArgs.cs
- CustomCategoryAttribute.cs
- ControlValuePropertyAttribute.cs
- TemplateControlCodeDomTreeGenerator.cs
- ContractMethodInfo.cs
- PlatformCulture.cs