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
- ColorTransform.cs
- RectKeyFrameCollection.cs
- StringBuilder.cs
- SiblingIterators.cs
- StringDictionaryCodeDomSerializer.cs
- DataSourceHelper.cs
- InputDevice.cs
- ManualResetEvent.cs
- EventPropertyMap.cs
- EntityContainerEmitter.cs
- rsa.cs
- StreamSecurityUpgradeProvider.cs
- HttpFileCollection.cs
- SecurityStateEncoder.cs
- BidOverLoads.cs
- ResponseBodyWriter.cs
- SectionInformation.cs
- SessionKeyExpiredException.cs
- StylesEditorDialog.cs
- TypeToken.cs
- ContentElement.cs
- UndoManager.cs
- Lock.cs
- SoundPlayer.cs
- Ipv6Element.cs
- TemplateContainer.cs
- SectionInput.cs
- WorkflowElementDialog.cs
- WriteTimeStream.cs
- PersonalizationStateInfo.cs
- HijriCalendar.cs
- ToolStripStatusLabel.cs
- RequestTimeoutManager.cs
- PermissionListSet.cs
- ImpersonationContext.cs
- CurrencyManager.cs
- ImageKeyConverter.cs
- WebPartRestoreVerb.cs
- HostProtectionException.cs
- XmlDocument.cs
- TemplateColumn.cs
- UnmanagedMemoryStreamWrapper.cs
- ItemCheckedEvent.cs
- BooleanStorage.cs
- UrlRoutingModule.cs
- XmlSchemaNotation.cs
- NamedPipeChannelListener.cs
- TimelineCollection.cs
- PreviewKeyDownEventArgs.cs
- ProgressBarHighlightConverter.cs
- CompilationSection.cs
- InkCollectionBehavior.cs
- Container.cs
- AdornerDecorator.cs
- TabletCollection.cs
- UrlAuthorizationModule.cs
- MyContact.cs
- RSAPKCS1SignatureDeformatter.cs
- ImageSource.cs
- ActivationArguments.cs
- EntityDataSourceState.cs
- XmlText.cs
- EntityTransaction.cs
- NonSerializedAttribute.cs
- VisualTreeUtils.cs
- CompilerGeneratedAttribute.cs
- SafeNativeMethodsCLR.cs
- EncryptedData.cs
- DispatcherSynchronizationContext.cs
- BitmapEffectGroup.cs
- ConfigXmlCDataSection.cs
- ExpressionBuilderContext.cs
- WindowsListViewScroll.cs
- DictionaryEntry.cs
- ConfigXmlWhitespace.cs
- Compensate.cs
- ClipboardData.cs
- PlanCompiler.cs
- DataSourceView.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- ObjectItemNoOpAssemblyLoader.cs
- PDBReader.cs
- LogicalTreeHelper.cs
- AttributeExtensions.cs
- SecurityMessageProperty.cs
- SafeArrayTypeMismatchException.cs
- TypeExtension.cs
- PreservationFileReader.cs
- DependencyPropertyKind.cs
- WebPartVerb.cs
- ToolStripButton.cs
- Rotation3D.cs
- Container.cs
- CodeGen.cs
- HttpHandlerAction.cs
- GreaterThanOrEqual.cs
- Point3DCollection.cs
- PointF.cs
- DocumentDesigner.cs
- SqlException.cs