Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Animation / ElasticEase.cs / 1305600 / ElasticEase.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation, 2008 // // File: ElasticEase.cs //----------------------------------------------------------------------------- using MS.Internal; namespace System.Windows.Media.Animation { ////// This class implements an easing function that gives an elastic/springy curve /// public class ElasticEase : EasingFunctionBase { public ElasticEase() { } ////// Bounces Property /// public static readonly DependencyProperty OscillationsProperty = DependencyProperty.Register( "Oscillations", typeof(int), typeof(ElasticEase), new PropertyMetadata(3)); ////// Specifies the number of oscillations /// public int Oscillations { get { return (int)GetValue(OscillationsProperty); } set { SetValueInternal(OscillationsProperty, value); } } ////// Springiness Property /// public static readonly DependencyProperty SpringinessProperty = DependencyProperty.Register( "Springiness", typeof(double), typeof(ElasticEase), new PropertyMetadata(3.0)); ////// Specifies the amount of springiness /// public double Springiness { get { return (double)GetValue(SpringinessProperty); } set { SetValueInternal(SpringinessProperty, value); } } protected override double EaseInCore(double normalizedTime) { double oscillations = Math.Max(0.0, (double)Oscillations); double springiness = Math.Max(0.0, Springiness); double expo; if (DoubleUtil.IsZero(springiness)) { expo = normalizedTime; } else { expo = (Math.Exp(springiness * normalizedTime) - 1.0) / (Math.Exp(springiness) - 1.0); } return expo * (Math.Sin((Math.PI * 2.0 * oscillations + Math.PI * 0.5) * normalizedTime)); } protected override Freezable CreateInstanceCore() { return new ElasticEase(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation, 2008 // // File: ElasticEase.cs //----------------------------------------------------------------------------- using MS.Internal; namespace System.Windows.Media.Animation { ////// This class implements an easing function that gives an elastic/springy curve /// public class ElasticEase : EasingFunctionBase { public ElasticEase() { } ////// Bounces Property /// public static readonly DependencyProperty OscillationsProperty = DependencyProperty.Register( "Oscillations", typeof(int), typeof(ElasticEase), new PropertyMetadata(3)); ////// Specifies the number of oscillations /// public int Oscillations { get { return (int)GetValue(OscillationsProperty); } set { SetValueInternal(OscillationsProperty, value); } } ////// Springiness Property /// public static readonly DependencyProperty SpringinessProperty = DependencyProperty.Register( "Springiness", typeof(double), typeof(ElasticEase), new PropertyMetadata(3.0)); ////// Specifies the amount of springiness /// public double Springiness { get { return (double)GetValue(SpringinessProperty); } set { SetValueInternal(SpringinessProperty, value); } } protected override double EaseInCore(double normalizedTime) { double oscillations = Math.Max(0.0, (double)Oscillations); double springiness = Math.Max(0.0, Springiness); double expo; if (DoubleUtil.IsZero(springiness)) { expo = normalizedTime; } else { expo = (Math.Exp(springiness * normalizedTime) - 1.0) / (Math.Exp(springiness) - 1.0); } return expo * (Math.Sin((Math.PI * 2.0 * oscillations + Math.PI * 0.5) * normalizedTime)); } protected override Freezable CreateInstanceCore() { return new ElasticEase(); } } } // 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
- StringPropertyBuilder.cs
- XmlSerializerFactory.cs
- ContextQuery.cs
- TabItemWrapperAutomationPeer.cs
- Application.cs
- DataGridViewCellCancelEventArgs.cs
- LinqDataSourceContextData.cs
- WebBrowserDocumentCompletedEventHandler.cs
- OutputWindow.cs
- HatchBrush.cs
- TextRangeAdaptor.cs
- CqlErrorHelper.cs
- FileUtil.cs
- Attributes.cs
- DataSourceCacheDurationConverter.cs
- OdbcEnvironment.cs
- DnsPermission.cs
- SqlOuterApplyReducer.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- GeneralTransform3DGroup.cs
- XdrBuilder.cs
- DockingAttribute.cs
- HtmlInputImage.cs
- TreeViewImageKeyConverter.cs
- DecimalConstantAttribute.cs
- Timeline.cs
- OledbConnectionStringbuilder.cs
- MsdtcClusterUtils.cs
- MessageProtectionOrder.cs
- Empty.cs
- TerminatorSinks.cs
- StrokeIntersection.cs
- ControlBuilderAttribute.cs
- SelectionEditor.cs
- Listbox.cs
- ChannelSinkStacks.cs
- InstanceNormalEvent.cs
- figurelength.cs
- DiscoveryMessageProperty.cs
- HyperLinkColumn.cs
- HostedTransportConfigurationManager.cs
- XmlComplianceUtil.cs
- DocumentGrid.cs
- QilLoop.cs
- EventWaitHandleSecurity.cs
- TypeFieldSchema.cs
- SelectionManager.cs
- SBCSCodePageEncoding.cs
- ButtonFlatAdapter.cs
- RSAProtectedConfigurationProvider.cs
- StickyNoteContentControl.cs
- PropertyNames.cs
- UnmanagedMemoryStreamWrapper.cs
- DataGridViewControlCollection.cs
- EntitySqlQueryCacheEntry.cs
- BitArray.cs
- ReadOnlyDataSource.cs
- CompatibleIComparer.cs
- WebPartAuthorizationEventArgs.cs
- EventToken.cs
- NameSpaceEvent.cs
- XmlFileEditor.cs
- BatchWriter.cs
- CharEnumerator.cs
- NestedContainer.cs
- DefaultBinder.cs
- InputProcessorProfiles.cs
- TypeToArgumentTypeConverter.cs
- Icon.cs
- ToolStripRenderEventArgs.cs
- DirectoryRootQuery.cs
- TdsParserHelperClasses.cs
- documentsequencetextview.cs
- SchemaTypeEmitter.cs
- TextDecorationCollection.cs
- ProxyWebPart.cs
- AddInIpcChannel.cs
- ThousandthOfEmRealDoubles.cs
- HierarchicalDataSourceControl.cs
- diagnosticsswitches.cs
- IsolatedStorage.cs
- NamedPipeTransportManager.cs
- ContextMenu.cs
- InitializationEventAttribute.cs
- WebPartDeleteVerb.cs
- NamespaceMapping.cs
- BlurBitmapEffect.cs
- PlatformCulture.cs
- ParenExpr.cs
- Tracking.cs
- DispatchChannelSink.cs
- DataBinding.cs
- BinaryUtilClasses.cs
- ParserExtension.cs
- AutomationElement.cs
- DataReceivedEventArgs.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- ToolStripScrollButton.cs
- Span.cs
- DES.cs