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 public override bool Equals(object value) { if ( value == null || !(value is KeyTime)) { return false; } return this == (KeyTime)value; } ///Object.Equals . ////// Implementation of 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(); } } ///Object.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 public override bool Equals(object value) { if ( value == null || !(value is KeyTime)) { return false; } return this == (KeyTime)value; } ///Object.Equals . ////// Implementation of 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(); } } ///Object.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
- MenuItemBinding.cs
- RenderingBiasValidation.cs
- CmsInterop.cs
- IndexedGlyphRun.cs
- DiscoveryReferences.cs
- ProxyWebPartManagerDesigner.cs
- XmlSerializationReader.cs
- DataControlLinkButton.cs
- CreateUserErrorEventArgs.cs
- SqlCacheDependencyDatabaseCollection.cs
- StatementContext.cs
- StickyNoteAnnotations.cs
- RemotingConfigParser.cs
- BamlReader.cs
- XamlGridLengthSerializer.cs
- InsufficientMemoryException.cs
- BindingManagerDataErrorEventArgs.cs
- CookieProtection.cs
- ConfigurationManagerHelperFactory.cs
- NativeMethods.cs
- EntityCommandDefinition.cs
- DebugView.cs
- MsmqAppDomainProtocolHandler.cs
- KeyedCollection.cs
- LineServicesCallbacks.cs
- Base64Encoder.cs
- _Semaphore.cs
- IPCCacheManager.cs
- DashStyle.cs
- ButtonBaseAutomationPeer.cs
- UICuesEvent.cs
- PageBreakRecord.cs
- ApplyTemplatesAction.cs
- IIS7WorkerRequest.cs
- ShaderRenderModeValidation.cs
- WCFBuildProvider.cs
- WindowsStartMenu.cs
- BoolExpression.cs
- DeferredReference.cs
- FilteredDataSetHelper.cs
- WorkflowEventArgs.cs
- CodeSnippetExpression.cs
- RecognizerStateChangedEventArgs.cs
- CollectionConverter.cs
- Graphics.cs
- CheckedListBox.cs
- DbProviderSpecificTypePropertyAttribute.cs
- FlowDocumentPage.cs
- CommandManager.cs
- BezierSegment.cs
- MasterPage.cs
- StorageConditionPropertyMapping.cs
- DesignerSelectionListAdapter.cs
- XmlBaseWriter.cs
- TextModifierScope.cs
- XPathNodeHelper.cs
- SafeRightsManagementPubHandle.cs
- RenderOptions.cs
- AvTraceDetails.cs
- UnSafeCharBuffer.cs
- HighlightVisual.cs
- BindStream.cs
- ConnectionPointCookie.cs
- TargetControlTypeAttribute.cs
- StateDesigner.Helpers.cs
- WebProxyScriptElement.cs
- DataGridViewCellEventArgs.cs
- ReflectPropertyDescriptor.cs
- WebPartActionVerb.cs
- ManipulationInertiaStartingEventArgs.cs
- XmlAttribute.cs
- SemaphoreFullException.cs
- BindingCompleteEventArgs.cs
- PassportAuthenticationEventArgs.cs
- NativeMethods.cs
- TableRowCollection.cs
- QilTargetType.cs
- DataSourceView.cs
- DBAsyncResult.cs
- DispatcherHooks.cs
- StrongTypingException.cs
- connectionpool.cs
- TableCell.cs
- RangeContentEnumerator.cs
- TableLayoutSettingsTypeConverter.cs
- TemplateControlBuildProvider.cs
- BinaryReader.cs
- GeneratedContractType.cs
- precedingquery.cs
- TemplateControlBuildProvider.cs
- CachedPathData.cs
- DrawingImage.cs
- TagMapCollection.cs
- ValidatorUtils.cs
- WinCategoryAttribute.cs
- XmlSortKeyAccumulator.cs
- WizardSideBarListControlItemEventArgs.cs
- Pen.cs
- BitmapEffectDrawingContent.cs
- SqlDependency.cs