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
- ViewCellSlot.cs
- AssemblyFilter.cs
- FieldNameLookup.cs
- EdmProviderManifest.cs
- NativeMethods.cs
- PathFigure.cs
- HtmlProps.cs
- InstallerTypeAttribute.cs
- HttpModuleCollection.cs
- MailBnfHelper.cs
- SlipBehavior.cs
- TraceXPathNavigator.cs
- DbProviderConfigurationHandler.cs
- GlyphShapingProperties.cs
- ActionMessageFilter.cs
- TextRunProperties.cs
- SamlConditions.cs
- ScriptingRoleServiceSection.cs
- ToolStripLocationCancelEventArgs.cs
- TextElementAutomationPeer.cs
- AttributeProviderAttribute.cs
- HttpCapabilitiesEvaluator.cs
- AttributeParameterInfo.cs
- DefaultTraceListener.cs
- PropertyPath.cs
- BitmapDownload.cs
- Vector3DCollectionValueSerializer.cs
- CalendarTable.cs
- Fx.cs
- ThrowHelper.cs
- TcpConnectionPool.cs
- ListMarkerLine.cs
- WebPartCancelEventArgs.cs
- EntityDataSourceSelectingEventArgs.cs
- XmlHelper.cs
- ScaleTransform3D.cs
- MarkupProperty.cs
- ApplicationFileCodeDomTreeGenerator.cs
- XPathDocumentBuilder.cs
- SqlCachedBuffer.cs
- updateconfighost.cs
- DataGridPagerStyle.cs
- StrokeSerializer.cs
- EntityType.cs
- VersionedStream.cs
- DependencyObjectProvider.cs
- StrokeNodeEnumerator.cs
- ListItemCollection.cs
- ScheduleChanges.cs
- UnauthorizedWebPart.cs
- XmlLoader.cs
- EntryIndex.cs
- Cursors.cs
- FileDetails.cs
- UniqueConstraint.cs
- DependencyObject.cs
- ReferencedType.cs
- MetadataPropertyvalue.cs
- ManagementObjectSearcher.cs
- Span.cs
- ExtendedProtectionPolicy.cs
- WorkflowServiceBehavior.cs
- FixedStringLookup.cs
- MimeTypeMapper.cs
- CodeChecksumPragma.cs
- FormsIdentity.cs
- MediaElement.cs
- Run.cs
- COM2PropertyDescriptor.cs
- PackageFilter.cs
- HtmlInputReset.cs
- PeerTransportListenAddressValidatorAttribute.cs
- AsyncCodeActivityContext.cs
- MemberAccessException.cs
- _Semaphore.cs
- DoubleStorage.cs
- HttpCapabilitiesEvaluator.cs
- ISO2022Encoding.cs
- XmlTextAttribute.cs
- DataGridViewColumnStateChangedEventArgs.cs
- XPathAxisIterator.cs
- DirectoryInfo.cs
- EntityClassGenerator.cs
- SafeEventLogReadHandle.cs
- ItemsChangedEventArgs.cs
- KeyboardNavigation.cs
- DataMisalignedException.cs
- XsdDuration.cs
- ArrayElementGridEntry.cs
- HttpCapabilitiesSectionHandler.cs
- ConnectionInterfaceCollection.cs
- CustomCredentialPolicy.cs
- ScrollContentPresenter.cs
- Cursors.cs
- DeviceSpecificDesigner.cs
- ErrorWebPart.cs
- SnapLine.cs
- VisualBrush.cs
- WebBaseEventKeyComparer.cs
- TableLayoutSettings.cs