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
- WorkflowDefinitionDispenser.cs
- ConfigXmlDocument.cs
- ItemContainerPattern.cs
- TrackingProfile.cs
- PseudoWebRequest.cs
- DispatcherEventArgs.cs
- TextDecoration.cs
- AudioSignalProblemOccurredEventArgs.cs
- QuestionEventArgs.cs
- _Win32.cs
- AttachedAnnotationChangedEventArgs.cs
- FixedSOMPage.cs
- XPathMessageContext.cs
- SqlDataSourceStatusEventArgs.cs
- NamespaceCollection.cs
- MemberDescriptor.cs
- DesignerCategoryAttribute.cs
- ObjectSelectorEditor.cs
- TCPListener.cs
- Zone.cs
- PaintEvent.cs
- CodeLinePragma.cs
- dataSvcMapFileLoader.cs
- XmlArrayAttribute.cs
- WebUtil.cs
- UserNameSecurityTokenAuthenticator.cs
- GradientStop.cs
- XmlAttributeCollection.cs
- Cell.cs
- FreezableCollection.cs
- WeakReferenceList.cs
- ResourceDisplayNameAttribute.cs
- CodeConditionStatement.cs
- LocatorPartList.cs
- KeyProperty.cs
- EpmTargetTree.cs
- XmlNamespaceMapping.cs
- AgileSafeNativeMemoryHandle.cs
- XPathAncestorQuery.cs
- IndexedWhereQueryOperator.cs
- GenericEnumerator.cs
- ToolboxComponentsCreatedEventArgs.cs
- IPGlobalProperties.cs
- ParentControlDesigner.cs
- AnyReturnReader.cs
- DeferredTextReference.cs
- EventProviderTraceListener.cs
- DataPagerFieldCollection.cs
- InputReport.cs
- SqlBulkCopy.cs
- AutomationIdentifier.cs
- DataRowExtensions.cs
- DoubleLinkListEnumerator.cs
- ScheduleChanges.cs
- ToolStripSplitButton.cs
- VisualTreeHelper.cs
- NodeCounter.cs
- DataGridBoolColumn.cs
- EnvelopedPkcs7.cs
- KeyConverter.cs
- BlurBitmapEffect.cs
- RenderOptions.cs
- ComplusEndpointConfigContainer.cs
- QueryAccessibilityHelpEvent.cs
- TagPrefixInfo.cs
- BeginStoryboard.cs
- SmtpFailedRecipientsException.cs
- SingleAnimationUsingKeyFrames.cs
- ActivityCompletionCallbackWrapper.cs
- HttpModule.cs
- ServiceDiscoveryBehavior.cs
- ZipArchive.cs
- BrowserInteropHelper.cs
- Rule.cs
- WindowsFormsHostAutomationPeer.cs
- EventMemberCodeDomSerializer.cs
- ApplicationFileCodeDomTreeGenerator.cs
- CharEntityEncoderFallback.cs
- Grid.cs
- DataSourceControl.cs
- TextEditorParagraphs.cs
- DataSourceHelper.cs
- StoreItemCollection.Loader.cs
- PageCanvasSize.cs
- NodeFunctions.cs
- RawStylusSystemGestureInputReport.cs
- RangeValuePatternIdentifiers.cs
- CommandDevice.cs
- NullReferenceException.cs
- ImageClickEventArgs.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- DataSpaceManager.cs
- AnnotationAuthorChangedEventArgs.cs
- SiteMapNodeItemEventArgs.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- MediaContextNotificationWindow.cs
- FileVersionInfo.cs
- HttpProfileBase.cs
- DrawingImage.cs
- RelativeSource.cs