Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Input / InertiaExpansionBehavior.cs / 1305600 / InertiaExpansionBehavior.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 InertiaExpansionBehavior { ////// Instantiates a new instance of this class. /// public InertiaExpansionBehavior() { } ////// Instantiates a new instance of this class. /// internal InertiaExpansionBehavior(Vector initialVelocity) { _initialVelocity = initialVelocity; } ////// The initial rate of change of size 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; _isDesiredExpansionSet = false; _desiredExpansion = new Vector(double.NaN, double.NaN); } } ////// The desired total change in size. /// public Vector DesiredExpansion { get { return _desiredExpansion; } set { _isDesiredExpansionSet = true; _desiredExpansion = value; _isDesiredDecelerationSet = false; _desiredDeceleration = double.NaN; } } public double InitialRadius { get { return _initialRadius; } set { _isInitialRadiusSet = true; _initialRadius = value; } } internal bool CanUseForInertia() { return _isInitialVelocitySet || _isInitialRadiusSet || _isDesiredDecelerationSet || _isDesiredExpansionSet; } internal static void ApplyParameters(InertiaExpansionBehavior behavior, InertiaProcessor2D processor, Vector initialVelocity) { if (behavior != null && behavior.CanUseForInertia()) { InertiaExpansionBehavior2D behavior2D = new InertiaExpansionBehavior2D(); 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._isDesiredExpansionSet) { behavior2D.DesiredExpansionX = (float)behavior._desiredExpansion.X; behavior2D.DesiredExpansionY = (float)behavior._desiredExpansion.Y; } if (behavior._isInitialRadiusSet) { behavior2D.InitialRadius = (float)behavior._initialRadius; } processor.ExpansionBehavior = behavior2D; } } private bool _isInitialVelocitySet; private Vector _initialVelocity = new Vector(double.NaN, double.NaN); private bool _isDesiredDecelerationSet; private double _desiredDeceleration = double.NaN; private bool _isDesiredExpansionSet; private Vector _desiredExpansion = new Vector(double.NaN, double.NaN); private bool _isInitialRadiusSet; private double _initialRadius = 1.0; } } // 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
- StringUtil.cs
- ErrorsHelper.cs
- XmlMembersMapping.cs
- JsonCollectionDataContract.cs
- RtfToXamlLexer.cs
- Pointer.cs
- PrimaryKeyTypeConverter.cs
- PropertiesTab.cs
- RealizationDrawingContextWalker.cs
- BlurEffect.cs
- SqlPersonalizationProvider.cs
- ContentFileHelper.cs
- VerticalAlignConverter.cs
- HtmlFormAdapter.cs
- XmlSchemaElement.cs
- TemplateAction.cs
- SystemIcons.cs
- Baml2006KeyRecord.cs
- SHA384Managed.cs
- MarkupCompilePass2.cs
- X509RawDataKeyIdentifierClause.cs
- PersonalizationState.cs
- PairComparer.cs
- XmlSerializationWriter.cs
- ByteKeyFrameCollection.cs
- NameValueSectionHandler.cs
- Rotation3DAnimation.cs
- MessagePartDescriptionCollection.cs
- FixedSOMPageConstructor.cs
- KnownTypeAttribute.cs
- Util.cs
- HttpConfigurationSystem.cs
- InvalidAsynchronousStateException.cs
- HitTestParameters.cs
- SplayTreeNode.cs
- EventListener.cs
- SizeAnimation.cs
- Baml6ConstructorInfo.cs
- ScalarType.cs
- PointCollectionValueSerializer.cs
- ToolStripArrowRenderEventArgs.cs
- NumberSubstitution.cs
- SqlCommandBuilder.cs
- PointHitTestResult.cs
- DomNameTable.cs
- AutomationPatternInfo.cs
- OpenFileDialog.cs
- configsystem.cs
- ArraySubsetEnumerator.cs
- EdgeProfileValidation.cs
- Geometry3D.cs
- UrlAuthorizationModule.cs
- InputReport.cs
- Floater.cs
- UriTemplateTrieNode.cs
- ListDependantCardsRequest.cs
- XslCompiledTransform.cs
- Inline.cs
- FusionWrap.cs
- SHA512CryptoServiceProvider.cs
- OdbcEnvironment.cs
- Assembly.cs
- BindToObject.cs
- CompilerParameters.cs
- IntSecurity.cs
- _RequestCacheProtocol.cs
- Transform3DGroup.cs
- HttpModuleCollection.cs
- AnimatedTypeHelpers.cs
- DockAndAnchorLayout.cs
- XslAstAnalyzer.cs
- ContractType.cs
- MethodBody.cs
- FtpWebResponse.cs
- SlotInfo.cs
- FastPropertyAccessor.cs
- MediaTimeline.cs
- TabPage.cs
- GeneralTransform.cs
- DeviceContext.cs
- TreeWalkHelper.cs
- EdmSchemaAttribute.cs
- SystemColors.cs
- CustomValidator.cs
- XPathNodeList.cs
- SizeFConverter.cs
- StorageComplexPropertyMapping.cs
- ExeConfigurationFileMap.cs
- BitmapEffectInput.cs
- RangeBaseAutomationPeer.cs
- GroupStyle.cs
- SqlProviderServices.cs
- ContextDataSourceContextData.cs
- TimeoutValidationAttribute.cs
- GenerateScriptTypeAttribute.cs
- ExceptionNotification.cs
- CheckPair.cs
- TemplateParser.cs
- BaseTreeIterator.cs
- TreeViewImageGenerator.cs