Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Animation / EasingFunctionBase.cs / 1305600 / EasingFunctionBase.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation, 2008 // // File: EasingFunctionBase.cs //----------------------------------------------------------------------------- namespace System.Windows.Media.Animation { ////// This class is the base class for many easing functions. /// public abstract class EasingFunctionBase : Freezable, IEasingFunction { ////// EasingMode Property /// public static readonly DependencyProperty EasingModeProperty = DependencyProperty.Register( "EasingMode", typeof(EasingMode), typeof(EasingFunctionBase), new PropertyMetadata(EasingMode.EaseOut)); ////// Specifies the easing behavior. /// public EasingMode EasingMode { get { return (EasingMode)GetValue(EasingModeProperty); } set { SetValueInternal(EasingModeProperty, value); } } ////// Transforms normalized time to control the pace of an animation. /// /// normalized time (progress) of the animation ///transformed progress ///Uses EasingMode in conjunction with EaseInCore to evaluate the easing function. public double Ease(double normalizedTime) { switch (EasingMode) { case EasingMode.EaseIn: return EaseInCore(normalizedTime); case EasingMode.EaseOut: // EaseOut is the same as EaseIn, except time is reversed & the result is flipped. return 1.0 - EaseInCore(1.0 - normalizedTime); case EasingMode.EaseInOut: default: // EaseInOut is a combination of EaseIn & EaseOut fit to the 0-1, 0-1 range. return (normalizedTime < 0.5) ? EaseInCore( normalizedTime * 2.0 ) * 0.5 : (1.0 - EaseInCore((1.0 - normalizedTime) * 2.0)) * 0.5 + 0.5; } } ////// Transforms normalized time to control the pace of an animation for the EaseIn EasingMode /// /// normalized time (progress) of the animation ///transformed progress ////// You only have to specifiy your easing function for the 'EaseIn' case because the implementation /// of Ease will handle transforming normalizedTime & the result of this method to handle 'EaseOut' & 'EaseInOut'. /// protected abstract double EaseInCore(double normalizedTime); } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation, 2008 // // File: EasingFunctionBase.cs //----------------------------------------------------------------------------- namespace System.Windows.Media.Animation { ////// This class is the base class for many easing functions. /// public abstract class EasingFunctionBase : Freezable, IEasingFunction { ////// EasingMode Property /// public static readonly DependencyProperty EasingModeProperty = DependencyProperty.Register( "EasingMode", typeof(EasingMode), typeof(EasingFunctionBase), new PropertyMetadata(EasingMode.EaseOut)); ////// Specifies the easing behavior. /// public EasingMode EasingMode { get { return (EasingMode)GetValue(EasingModeProperty); } set { SetValueInternal(EasingModeProperty, value); } } ////// Transforms normalized time to control the pace of an animation. /// /// normalized time (progress) of the animation ///transformed progress ///Uses EasingMode in conjunction with EaseInCore to evaluate the easing function. public double Ease(double normalizedTime) { switch (EasingMode) { case EasingMode.EaseIn: return EaseInCore(normalizedTime); case EasingMode.EaseOut: // EaseOut is the same as EaseIn, except time is reversed & the result is flipped. return 1.0 - EaseInCore(1.0 - normalizedTime); case EasingMode.EaseInOut: default: // EaseInOut is a combination of EaseIn & EaseOut fit to the 0-1, 0-1 range. return (normalizedTime < 0.5) ? EaseInCore( normalizedTime * 2.0 ) * 0.5 : (1.0 - EaseInCore((1.0 - normalizedTime) * 2.0)) * 0.5 + 0.5; } } ////// Transforms normalized time to control the pace of an animation for the EaseIn EasingMode /// /// normalized time (progress) of the animation ///transformed progress ////// You only have to specifiy your easing function for the 'EaseIn' case because the implementation /// of Ease will handle transforming normalizedTime & the result of this method to handle 'EaseOut' & 'EaseInOut'. /// protected abstract double EaseInCore(double normalizedTime); } } // 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
- ListViewGroupCollectionEditor.cs
- CodeLabeledStatement.cs
- SQLBinary.cs
- ProtocolViolationException.cs
- TimerElapsedEvenArgs.cs
- DoubleUtil.cs
- ADConnectionHelper.cs
- ExceptionUtil.cs
- IgnoreSectionHandler.cs
- HtmlWindow.cs
- QuestionEventArgs.cs
- CodeDelegateInvokeExpression.cs
- RotateTransform.cs
- Bezier.cs
- PasswordBoxAutomationPeer.cs
- MethodBuilderInstantiation.cs
- EntityDescriptor.cs
- TextRangeAdaptor.cs
- DependencySource.cs
- DateTime.cs
- ProtocolElementCollection.cs
- NativeMethods.cs
- ConstrainedDataObject.cs
- RelationshipEnd.cs
- OpenTypeLayoutCache.cs
- WCFServiceClientProxyGenerator.cs
- DbMetaDataColumnNames.cs
- FrameworkReadOnlyPropertyMetadata.cs
- SecurityTokenAuthenticator.cs
- Style.cs
- SqlFileStream.cs
- RangeValidator.cs
- MultiAsyncResult.cs
- SinglePageViewer.cs
- SystemColorTracker.cs
- PanelStyle.cs
- HtmlInputHidden.cs
- PermissionSetTriple.cs
- remotingproxy.cs
- LookupBindingPropertiesAttribute.cs
- PeerResolver.cs
- AssemblyCacheEntry.cs
- ViewStateModeByIdAttribute.cs
- WebPartEventArgs.cs
- ListItemParagraph.cs
- Stopwatch.cs
- WeakReferenceEnumerator.cs
- ListViewTableRow.cs
- AlphabeticalEnumConverter.cs
- MexHttpBindingCollectionElement.cs
- sitestring.cs
- StorageEntitySetMapping.cs
- DebugView.cs
- SafeSecurityHelper.cs
- ViewBase.cs
- ClientScriptItem.cs
- InnerItemCollectionView.cs
- DurableInstanceManager.cs
- StatusBar.cs
- CallSiteBinder.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- VBCodeProvider.cs
- StandardToolWindows.cs
- CodePropertyReferenceExpression.cs
- BindingParameterCollection.cs
- WindowsFormsDesignerOptionService.cs
- TreeNodeSelectionProcessor.cs
- TriggerBase.cs
- OutputCache.cs
- BuildProvider.cs
- FramingEncoders.cs
- TableItemStyle.cs
- UIElement3D.cs
- AutoGeneratedField.cs
- GlyphRun.cs
- RowToFieldTransformer.cs
- DynamicValidator.cs
- WebPartVerbCollection.cs
- ListSourceHelper.cs
- CaseInsensitiveHashCodeProvider.cs
- UnsafePeerToPeerMethods.cs
- Converter.cs
- SafeFileMapViewHandle.cs
- SqlCacheDependency.cs
- DbDeleteCommandTree.cs
- VisualStyleElement.cs
- HMACSHA256.cs
- Configuration.cs
- CollectionViewGroup.cs
- _RequestCacheProtocol.cs
- DataViewManagerListItemTypeDescriptor.cs
- SessionParameter.cs
- UnsafeNativeMethods.cs
- XmlNamespaceDeclarationsAttribute.cs
- ForwardPositionQuery.cs
- SQLDecimalStorage.cs
- SecurityTraceRecordHelper.cs
- Sql8ExpressionRewriter.cs
- ProcessModelSection.cs
- EmulateRecognizeCompletedEventArgs.cs