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
- LogicalExpr.cs
- userdatakeys.cs
- Registry.cs
- ProfileEventArgs.cs
- AssociationTypeEmitter.cs
- MetadataArtifactLoaderCompositeResource.cs
- TimeoutHelper.cs
- KnownColorTable.cs
- ResourceCategoryAttribute.cs
- TcpActivation.cs
- MultiBindingExpression.cs
- ServiceDesigner.cs
- TreeNodeStyle.cs
- NominalTypeEliminator.cs
- KeyMatchBuilder.cs
- PbrsForward.cs
- _NetworkingPerfCounters.cs
- PolyLineSegmentFigureLogic.cs
- RegistryKey.cs
- XdrBuilder.cs
- AutomationProperties.cs
- SiteMapNodeItem.cs
- MessageHeaderAttribute.cs
- DoubleAnimationBase.cs
- ILGenerator.cs
- DiscardableAttribute.cs
- HttpDebugHandler.cs
- StringPropertyBuilder.cs
- BooleanKeyFrameCollection.cs
- ModelItemCollection.cs
- MenuTracker.cs
- RectAnimationUsingKeyFrames.cs
- MasterPageBuildProvider.cs
- TraceListener.cs
- TransactionBehavior.cs
- _AutoWebProxyScriptEngine.cs
- HttpListener.cs
- InputBindingCollection.cs
- RichTextBox.cs
- SspiSafeHandles.cs
- CorrelationManager.cs
- OutputCacheSettings.cs
- MetadataItemSerializer.cs
- ListBindableAttribute.cs
- DetailsViewPageEventArgs.cs
- Bitmap.cs
- ContainerVisual.cs
- figurelengthconverter.cs
- GraphicsPath.cs
- CapabilitiesState.cs
- SqlFormatter.cs
- XhtmlBasicLinkAdapter.cs
- GlobalItem.cs
- HMACRIPEMD160.cs
- MetabaseReader.cs
- EntityDataSourceContainerNameConverter.cs
- InternalEnumValidatorAttribute.cs
- StringExpressionSet.cs
- ImageBrush.cs
- CodeArrayCreateExpression.cs
- NativeMethods.cs
- SignalGate.cs
- VisualTreeUtils.cs
- Constants.cs
- Size.cs
- DoubleLink.cs
- BindingContext.cs
- MailAddress.cs
- TableAutomationPeer.cs
- mediapermission.cs
- AnonymousIdentificationModule.cs
- OdbcDataAdapter.cs
- MachineKeyConverter.cs
- OrderedDictionary.cs
- HwndKeyboardInputProvider.cs
- SingleTagSectionHandler.cs
- TreeNodeStyle.cs
- MailDefinition.cs
- RepeaterItem.cs
- ListSourceHelper.cs
- XmlWrappingReader.cs
- TextDpi.cs
- InteropExecutor.cs
- ActiveDocumentEvent.cs
- ValuePattern.cs
- StylusPoint.cs
- WebBrowserUriTypeConverter.cs
- SmiEventSink_Default.cs
- TextEndOfLine.cs
- ToolBarTray.cs
- WebResponse.cs
- CompilationUtil.cs
- DataGridPageChangedEventArgs.cs
- ImmutableCollection.cs
- SapiRecoInterop.cs
- XmlNode.cs
- CodeFieldReferenceExpression.cs
- OleDbReferenceCollection.cs
- ProcessHost.cs
- SchemaCollectionCompiler.cs