Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Input / InertiaTranslationBehavior.cs / 1305600 / InertiaTranslationBehavior.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Windows; using System.Windows.Input.Manipulations; namespace System.Windows.Input { ////// Provides information about the inertia behavior. /// public class InertiaTranslationBehavior { ////// Instantiates a new instance of this class. /// public InertiaTranslationBehavior() { } ////// Instantiates a new instance of this class. /// internal InertiaTranslationBehavior(Vector initialVelocity) { _initialVelocity = initialVelocity; } ////// The initial rate of change of position of the element at the start of the inertia phase. /// public Vector InitialVelocity { get { return _initialVelocity; } set { _isInitialVelocitySet = true; _initialVelocity = value; } } ////// The desired rate of change of velocity. /// public double DesiredDeceleration { get { return _desiredDeceleration; } set { if (Double.IsInfinity(value) || Double.IsNaN(value)) { throw new ArgumentOutOfRangeException("value"); } _isDesiredDecelerationSet = true; _desiredDeceleration = value; _isDesiredDisplacementSet = false; _desiredDisplacement = double.NaN; } } ////// The desired total change in position. /// public double DesiredDisplacement { get { return _desiredDisplacement; } set { if (Double.IsInfinity(value) || Double.IsNaN(value)) { throw new ArgumentOutOfRangeException("value"); } _isDesiredDisplacementSet = true; _desiredDisplacement = value; _isDesiredDecelerationSet = false; _desiredDeceleration = double.NaN; } } internal bool CanUseForInertia() { return _isInitialVelocitySet || _isDesiredDecelerationSet || _isDesiredDisplacementSet; } internal static void ApplyParameters(InertiaTranslationBehavior behavior, InertiaProcessor2D processor, Vector initialVelocity) { if (behavior != null && behavior.CanUseForInertia()) { InertiaTranslationBehavior2D behavior2D = new InertiaTranslationBehavior2D(); if (behavior._isInitialVelocitySet) { behavior2D.InitialVelocityX = (float)behavior._initialVelocity.X; behavior2D.InitialVelocityY = (float)behavior._initialVelocity.Y; } else { behavior2D.InitialVelocityX = (float)initialVelocity.X; behavior2D.InitialVelocityY = (float)initialVelocity.Y; } if (behavior._isDesiredDecelerationSet) { behavior2D.DesiredDeceleration = (float)behavior._desiredDeceleration; } if (behavior._isDesiredDisplacementSet) { behavior2D.DesiredDisplacement = (float)behavior._desiredDisplacement; } processor.TranslationBehavior = behavior2D; } } private bool _isInitialVelocitySet; private Vector _initialVelocity = new Vector(double.NaN, double.NaN); private bool _isDesiredDecelerationSet; private double _desiredDeceleration = double.NaN; private bool _isDesiredDisplacementSet; private double _desiredDisplacement = double.NaN; } } // 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
- PassportPrincipal.cs
- InternalReceiveMessage.cs
- ChannelBinding.cs
- DataBoundControlHelper.cs
- Image.cs
- GB18030Encoding.cs
- TextModifierScope.cs
- DataColumn.cs
- ComponentGlyph.cs
- XmlNodeChangedEventManager.cs
- AsyncResult.cs
- VectorValueSerializer.cs
- JournalEntryStack.cs
- Queue.cs
- ColumnHeader.cs
- SourceItem.cs
- MessageBodyDescription.cs
- CollectionBase.cs
- NeedSkipTokenVisitor.cs
- DynamicRenderer.cs
- ProvideValueServiceProvider.cs
- _ConnectionGroup.cs
- JsonGlobals.cs
- ClientCultureInfo.cs
- CacheOutputQuery.cs
- TextTreeText.cs
- __FastResourceComparer.cs
- JapaneseCalendar.cs
- EmbeddedMailObjectsCollection.cs
- datacache.cs
- MD5CryptoServiceProvider.cs
- EventProperty.cs
- ClientReliableChannelBinder.cs
- EventTrigger.cs
- UnicastIPAddressInformationCollection.cs
- AttributeInfo.cs
- HttpException.cs
- HelloOperation11AsyncResult.cs
- ActivityExecutionWorkItem.cs
- EntryWrittenEventArgs.cs
- CommentAction.cs
- HitTestWithPointDrawingContextWalker.cs
- DPTypeDescriptorContext.cs
- Constants.cs
- RoutingEndpointTrait.cs
- BaseTransportHeaders.cs
- XmlMtomWriter.cs
- HtmlFormWrapper.cs
- WebZone.cs
- HijriCalendar.cs
- DynamicQueryableWrapper.cs
- ListenerAdapter.cs
- BackgroundFormatInfo.cs
- ProviderCollection.cs
- AppDomainManager.cs
- DecoderBestFitFallback.cs
- PagesSection.cs
- Matrix3D.cs
- DecimalAverageAggregationOperator.cs
- PropertyTab.cs
- PropertyTab.cs
- BaseTransportHeaders.cs
- SspiNegotiationTokenProviderState.cs
- ProgressBarBrushConverter.cs
- SystemInformation.cs
- OciLobLocator.cs
- DataBindingCollection.cs
- MimeFormReflector.cs
- BrowserCapabilitiesCompiler.cs
- BufferModesCollection.cs
- ImageMapEventArgs.cs
- XmlSchemaAnnotation.cs
- SecureConversationDriver.cs
- CompilerCollection.cs
- QilLiteral.cs
- InputScopeNameConverter.cs
- SequenceFullException.cs
- MethodBuilderInstantiation.cs
- RawAppCommandInputReport.cs
- PolyBezierSegment.cs
- StorageEndPropertyMapping.cs
- WebHttpEndpoint.cs
- UnionCqlBlock.cs
- FillBehavior.cs
- ServiceOperationParameter.cs
- PolyBezierSegment.cs
- DateTimeValueSerializer.cs
- DirectoryInfo.cs
- OptimizerPatterns.cs
- FormsAuthenticationEventArgs.cs
- RijndaelManaged.cs
- IntSecurity.cs
- ConfigurationProperty.cs
- OleDbCommandBuilder.cs
- CodeExpressionCollection.cs
- RowSpanVector.cs
- PassportAuthenticationModule.cs
- RequestStatusBarUpdateEventArgs.cs
- XmlSchemaAttributeGroupRef.cs
- RecognitionEventArgs.cs