Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // // 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
- ConvertEvent.cs
- WebPartHelpVerb.cs
- MulticastDelegate.cs
- DesignerProperties.cs
- PeerNameRecord.cs
- RowsCopiedEventArgs.cs
- LinqDataSourceDisposeEventArgs.cs
- ImageButton.cs
- HiddenFieldPageStatePersister.cs
- InternalsVisibleToAttribute.cs
- ServiceOperation.cs
- HeaderCollection.cs
- SectionRecord.cs
- HwndSourceKeyboardInputSite.cs
- InvalidProgramException.cs
- CharAnimationUsingKeyFrames.cs
- SessionPageStatePersister.cs
- TaskHelper.cs
- XmlParserContext.cs
- Font.cs
- FloaterParaClient.cs
- WindowsRebar.cs
- RelatedImageListAttribute.cs
- GC.cs
- OrderPreservingPipeliningSpoolingTask.cs
- _SslStream.cs
- NameScopePropertyAttribute.cs
- WebPartChrome.cs
- TrackBar.cs
- WindowsBrush.cs
- EventSetter.cs
- _IPv4Address.cs
- BrushValueSerializer.cs
- UpdateExpressionVisitor.cs
- Fx.cs
- CodeTypeReferenceExpression.cs
- GlyphManager.cs
- UInt16Storage.cs
- MessageQueueAccessControlEntry.cs
- DateRangeEvent.cs
- AppDomainShutdownMonitor.cs
- FullTrustAssembliesSection.cs
- PasswordDeriveBytes.cs
- HtmlTextArea.cs
- SqlConnectionString.cs
- MenuItemAutomationPeer.cs
- StatusBar.cs
- MarkedHighlightComponent.cs
- Command.cs
- MasterPage.cs
- FixedSOMFixedBlock.cs
- CodeVariableReferenceExpression.cs
- AncillaryOps.cs
- ConfigurationPropertyCollection.cs
- DataTransferEventArgs.cs
- TdsEnums.cs
- DataConnectionHelper.cs
- SyndicationFeed.cs
- DataShape.cs
- SqlDataReader.cs
- TextBoxBase.cs
- ZipIOExtraField.cs
- VisualStyleTypesAndProperties.cs
- WebEvents.cs
- PageFunction.cs
- Codec.cs
- EventHandlerList.cs
- GorillaCodec.cs
- InputMethod.cs
- StreamWriter.cs
- ToolStripItemGlyph.cs
- ExpressionTextBoxAutomationPeer.cs
- ImageBrush.cs
- ClientType.cs
- ComProxy.cs
- ThrowHelper.cs
- MemberInfoSerializationHolder.cs
- TreeViewHitTestInfo.cs
- PropertyGeneratedEventArgs.cs
- RegexCaptureCollection.cs
- AtomParser.cs
- StringOutput.cs
- EventLogPermissionEntry.cs
- TextTreeFixupNode.cs
- SettingsPropertyWrongTypeException.cs
- StaticExtensionConverter.cs
- TypeCacheManager.cs
- SplashScreenNativeMethods.cs
- DoubleAnimationUsingPath.cs
- GridViewAutoFormat.cs
- Separator.cs
- Compensation.cs
- XmlSchemaInclude.cs
- assertwrapper.cs
- TableTextElementCollectionInternal.cs
- BaseAppDomainProtocolHandler.cs
- CalendarDay.cs
- AnnotationObservableCollection.cs
- MultipartIdentifier.cs
- MdiWindowListItemConverter.cs