Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // // 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
- Font.cs
- ExceptionRoutedEventArgs.cs
- AttributeData.cs
- DrawingImage.cs
- serverconfig.cs
- Signature.cs
- DiscoveryMessageSequenceCD1.cs
- Separator.cs
- TripleDESCryptoServiceProvider.cs
- WinFormsUtils.cs
- MouseEventArgs.cs
- ConfigurationSettings.cs
- TaskFormBase.cs
- HttpListenerContext.cs
- AppModelKnownContentFactory.cs
- AnimatedTypeHelpers.cs
- LicenseProviderAttribute.cs
- TextPointer.cs
- SqlLiftIndependentRowExpressions.cs
- AllowedAudienceUriElementCollection.cs
- X509UI.cs
- Menu.cs
- ProfilePropertyMetadata.cs
- DBCommandBuilder.cs
- File.cs
- SerializationInfoEnumerator.cs
- objectquery_tresulttype.cs
- TagElement.cs
- CollectionChange.cs
- TouchPoint.cs
- ControlParameter.cs
- RuntimeWrappedException.cs
- CodeTypeMemberCollection.cs
- SkinBuilder.cs
- ExtendedProtectionPolicyTypeConverter.cs
- ValidatedControlConverter.cs
- ConnectionStringsExpressionBuilder.cs
- AdornerDecorator.cs
- UnSafeCharBuffer.cs
- ListViewCommandEventArgs.cs
- EnglishPluralizationService.cs
- Point3DKeyFrameCollection.cs
- bindurihelper.cs
- RectAnimationBase.cs
- ProxyElement.cs
- NameValuePair.cs
- PaperSource.cs
- AnnotationResourceCollection.cs
- KeyboardDevice.cs
- BooleanProjectedSlot.cs
- StrokeNodeData.cs
- WindowsListViewScroll.cs
- RtfFormatStack.cs
- util.cs
- AttributeProviderAttribute.cs
- MessageVersionConverter.cs
- SplineKeyFrames.cs
- EntityClassGenerator.cs
- DataTableClearEvent.cs
- Version.cs
- AutomationElement.cs
- connectionpool.cs
- ErrorTableItemStyle.cs
- IPEndPoint.cs
- QilChoice.cs
- CharEnumerator.cs
- ResourceReferenceExpression.cs
- EntityContainerEntitySet.cs
- ReadOnlyDataSource.cs
- TrustLevel.cs
- CommandLibraryHelper.cs
- Point.cs
- ChildrenQuery.cs
- Bold.cs
- TabItemWrapperAutomationPeer.cs
- DeviceContext2.cs
- documentsequencetextpointer.cs
- webclient.cs
- WebPartDeleteVerb.cs
- RotateTransform.cs
- DataGridViewComboBoxColumn.cs
- RootProfilePropertySettingsCollection.cs
- regiisutil.cs
- StylusDownEventArgs.cs
- SqlCacheDependency.cs
- RijndaelManaged.cs
- XsltArgumentList.cs
- ReachSerializationCacheItems.cs
- PackageStore.cs
- MethodCallTranslator.cs
- AssociationSetMetadata.cs
- StrokeIntersection.cs
- ContentElement.cs
- HtmlInputSubmit.cs
- BufferedGraphicsContext.cs
- SystemWebExtensionsSectionGroup.cs
- FillRuleValidation.cs
- Deflater.cs
- UndoUnit.cs
- PropertySourceInfo.cs