Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FileAuthorizationModule.cs
- BooleanConverter.cs
- HttpListenerException.cs
- AnalyzedTree.cs
- WmlListAdapter.cs
- SqlUserDefinedAggregateAttribute.cs
- EntityContainerRelationshipSet.cs
- SqlNamer.cs
- QueryStringHandler.cs
- DirectoryObjectSecurity.cs
- InvalidDocumentContentsException.cs
- HtmlContainerControl.cs
- EntityProviderFactory.cs
- SkewTransform.cs
- PropertyGrid.cs
- UniqueIdentifierService.cs
- LinkArea.cs
- OdbcParameterCollection.cs
- SchemaInfo.cs
- HttpRequest.cs
- RenderTargetBitmap.cs
- TargetControlTypeCache.cs
- GenerateHelper.cs
- TreeNodeConverter.cs
- HwndSubclass.cs
- DesignerActionUIStateChangeEventArgs.cs
- BufferedWebEventProvider.cs
- SettingsPropertyValue.cs
- TextTreeInsertUndoUnit.cs
- MenuItem.cs
- XmlUtf8RawTextWriter.cs
- AspNetSynchronizationContext.cs
- ReadOnlyDictionary.cs
- FixedLineResult.cs
- InitializerFacet.cs
- DataObject.cs
- PenLineJoinValidation.cs
- HttpException.cs
- ClassImporter.cs
- JapaneseLunisolarCalendar.cs
- OpCellTreeNode.cs
- TextEffect.cs
- DataGridViewElement.cs
- ConfigUtil.cs
- VectorCollectionValueSerializer.cs
- ByteAnimationBase.cs
- SQLBoolean.cs
- WebControlParameterProxy.cs
- TableDesigner.cs
- InvalidOleVariantTypeException.cs
- Camera.cs
- TemplateDefinition.cs
- CounterCreationDataConverter.cs
- DataTable.cs
- diagnosticsswitches.cs
- Size.cs
- StringUtil.cs
- Registry.cs
- SerializableAttribute.cs
- BooleanFacetDescriptionElement.cs
- SafePointer.cs
- CharacterBufferReference.cs
- TranslateTransform3D.cs
- TextMetrics.cs
- BitmapFrameDecode.cs
- StorageMappingItemCollection.cs
- ExecutionContext.cs
- FullTextState.cs
- SupportingTokenSpecification.cs
- SqlClientWrapperSmiStreamChars.cs
- ApplicationHost.cs
- WebBrowserUriTypeConverter.cs
- WebServiceFault.cs
- LogReserveAndAppendState.cs
- DbDeleteCommandTree.cs
- AtomPub10ServiceDocumentFormatter.cs
- AdornerLayer.cs
- Activity.cs
- PreviewPageInfo.cs
- HierarchicalDataSourceControl.cs
- ResourceDisplayNameAttribute.cs
- ProfileEventArgs.cs
- FlowNode.cs
- Renderer.cs
- ICspAsymmetricAlgorithm.cs
- CodeSnippetCompileUnit.cs
- UndoManager.cs
- XmlDictionary.cs
- SiteMapNodeItem.cs
- UnmanagedBitmapWrapper.cs
- ErrorLog.cs
- BufferedWebEventProvider.cs
- SnapLine.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- PersonalizableTypeEntry.cs
- DataGridColumn.cs
- ImageField.cs
- ObjectDataSourceFilteringEventArgs.cs
- DefaultValidator.cs
- StaticSiteMapProvider.cs