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
- PersonalizationState.cs
- IntMinMaxAggregationOperator.cs
- UriParserTemplates.cs
- UnauthorizedAccessException.cs
- DesignerUtility.cs
- GradientSpreadMethodValidation.cs
- wpf-etw.cs
- ItemCheckedEvent.cs
- ListControlDesigner.cs
- CacheVirtualItemsEvent.cs
- FragmentNavigationEventArgs.cs
- GPRECTF.cs
- RouteParametersHelper.cs
- NativeMethodsCLR.cs
- Matrix3DConverter.cs
- ScalarRestriction.cs
- DataListItemCollection.cs
- WorkBatch.cs
- IncrementalHitTester.cs
- ActiveXContainer.cs
- NetworkInformationPermission.cs
- ManualResetEvent.cs
- CodeTypeParameterCollection.cs
- DBCSCodePageEncoding.cs
- CompiledAction.cs
- SoapMessage.cs
- TypeUtil.cs
- QuaternionValueSerializer.cs
- NavigationCommands.cs
- SafeArchiveContext.cs
- _SSPISessionCache.cs
- X509UI.cs
- BasicExpressionVisitor.cs
- TextEditorTyping.cs
- FloatAverageAggregationOperator.cs
- SmtpLoginAuthenticationModule.cs
- ExceptionHelpers.cs
- FontConverter.cs
- UnmanagedHandle.cs
- WmpBitmapEncoder.cs
- ListViewItem.cs
- UnauthorizedWebPart.cs
- CodeTypeParameterCollection.cs
- OdbcReferenceCollection.cs
- MessageBox.cs
- ClientType.cs
- RegistryConfigurationProvider.cs
- DataTableNewRowEvent.cs
- OracleCommandSet.cs
- WindowsSpinner.cs
- AddInContractAttribute.cs
- BookmarkInfo.cs
- TagMapCollection.cs
- FlagsAttribute.cs
- RequestDescription.cs
- Int32Animation.cs
- CultureInfo.cs
- dtdvalidator.cs
- WebPartDisplayMode.cs
- CompilerScope.cs
- XmlDocumentSchema.cs
- WmpBitmapEncoder.cs
- Timeline.cs
- OdbcConnectionStringbuilder.cs
- UnsupportedPolicyOptionsException.cs
- DeviceOverridableAttribute.cs
- PagePropertiesChangingEventArgs.cs
- AttributeCollection.cs
- TCPClient.cs
- PipelineComponent.cs
- AnimatedTypeHelpers.cs
- SetStateEventArgs.cs
- TextBox.cs
- ManipulationVelocities.cs
- AssemblyInfo.cs
- EditorPartCollection.cs
- IgnoreFileBuildProvider.cs
- MonthCalendar.cs
- EntryPointNotFoundException.cs
- CachingHintValidation.cs
- CollectionBuilder.cs
- OrderByQueryOptionExpression.cs
- TimeSpanConverter.cs
- DataGridViewCellMouseEventArgs.cs
- ParameterModifier.cs
- SQLBytes.cs
- ItemCheckedEvent.cs
- ListViewAutomationPeer.cs
- AttributeCollection.cs
- parserscommon.cs
- XmlSerializerAssemblyAttribute.cs
- InkCanvasInnerCanvas.cs
- PropertyChangingEventArgs.cs
- XsdDataContractExporter.cs
- Bitmap.cs
- SqlDataSourceCache.cs
- MemberInfoSerializationHolder.cs
- TiffBitmapEncoder.cs
- ExpressionStringBuilder.cs
- PartialList.cs