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
- IndexedString.cs
- ContainerUtilities.cs
- SoapProcessingBehavior.cs
- PropertyManager.cs
- EmissiveMaterial.cs
- ReliableInputConnection.cs
- XmlSchemaNotation.cs
- CompilationSection.cs
- AtomEntry.cs
- FileDataSourceCache.cs
- HasCopySemanticsAttribute.cs
- DataSourceHelper.cs
- FileStream.cs
- ResourceManagerWrapper.cs
- ObjectToken.cs
- ToolStripGripRenderEventArgs.cs
- DrawItemEvent.cs
- LinqExpressionNormalizer.cs
- CollectionExtensions.cs
- XmlNavigatorStack.cs
- IOException.cs
- IImplicitResourceProvider.cs
- ControlFilterExpression.cs
- TraceHandler.cs
- MailWebEventProvider.cs
- DbConnectionStringCommon.cs
- SqlFunctionAttribute.cs
- DataGridViewTopLeftHeaderCell.cs
- infer.cs
- BitmapPalette.cs
- DataTableNewRowEvent.cs
- DataListCommandEventArgs.cs
- ExecutionEngineException.cs
- Char.cs
- SelectionEditor.cs
- SystemResources.cs
- ApplicationInfo.cs
- InkCanvasInnerCanvas.cs
- SqlGatherConsumedAliases.cs
- RemotingAttributes.cs
- QilTypeChecker.cs
- StateItem.cs
- UserControlFileEditor.cs
- EncryptedPackage.cs
- DataServiceExpressionVisitor.cs
- ComboBoxItem.cs
- querybuilder.cs
- DefaultIfEmptyQueryOperator.cs
- QilChoice.cs
- PropertyMapper.cs
- ChangeTracker.cs
- AccessText.cs
- SizeAnimation.cs
- WebPartDeleteVerb.cs
- PasswordTextNavigator.cs
- URLEditor.cs
- JavaScriptObjectDeserializer.cs
- EmbossBitmapEffect.cs
- DropShadowBitmapEffect.cs
- XPathNodePointer.cs
- ComNativeDescriptor.cs
- Stroke.cs
- FileAccessException.cs
- WindowsFormsSynchronizationContext.cs
- GeneralTransform.cs
- ThrowHelper.cs
- UdpConstants.cs
- linebase.cs
- BuildProvidersCompiler.cs
- HtmlTernaryTree.cs
- HyperLinkField.cs
- DataGridViewComboBoxEditingControl.cs
- xml.cs
- hwndwrapper.cs
- ProgressBar.cs
- DataGridColumnHeadersPresenter.cs
- StrongTypingException.cs
- WebColorConverter.cs
- WindowsAltTab.cs
- OracleBoolean.cs
- DBConnection.cs
- shaper.cs
- HttpRequest.cs
- GeometryCollection.cs
- FilterEventArgs.cs
- DockAndAnchorLayout.cs
- EntityDataSourceWizardForm.cs
- InvokeBinder.cs
- FullTextLine.cs
- AudioDeviceOut.cs
- ArcSegment.cs
- ProfilePropertyMetadata.cs
- ExpressionBuilder.cs
- WebControlsSection.cs
- hresults.cs
- MetaForeignKeyColumn.cs
- ProfileSection.cs
- XmlSchemaComplexContentExtension.cs
- TypedElement.cs
- RelationshipDetailsRow.cs