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
- NullableConverter.cs
- isolationinterop.cs
- StaticResourceExtension.cs
- AppDomainAttributes.cs
- DataFieldConverter.cs
- httpserverutility.cs
- PopupRootAutomationPeer.cs
- GridItem.cs
- ManagementOperationWatcher.cs
- SqlConnectionFactory.cs
- AttributeCollection.cs
- ModelUIElement3D.cs
- SQLDecimalStorage.cs
- PageFunction.cs
- PrintingPermissionAttribute.cs
- TemplateKeyConverter.cs
- DeviceContext2.cs
- SerializationInfoEnumerator.cs
- PublisherIdentityPermission.cs
- ItemCheckedEvent.cs
- NetTcpSectionData.cs
- DateTimeFormatInfo.cs
- ReadOnlyPermissionSet.cs
- ParallelQuery.cs
- ExclusiveCanonicalizationTransform.cs
- AutomationPropertyInfo.cs
- DocumentViewerBaseAutomationPeer.cs
- SqlNodeAnnotation.cs
- WaitHandle.cs
- mongolianshape.cs
- TypeDescriptor.cs
- ErrorWrapper.cs
- TypedAsyncResult.cs
- listviewsubitemcollectioneditor.cs
- Application.cs
- ListInitExpression.cs
- DataColumnMapping.cs
- DynamicActivityProperty.cs
- SqlCharStream.cs
- SqlDependency.cs
- SaveFileDialog.cs
- AccessKeyManager.cs
- WorkflowView.cs
- AdornerLayer.cs
- LinqDataSourceView.cs
- RuntimeResourceSet.cs
- XmlNodeComparer.cs
- IfAction.cs
- OdbcParameterCollection.cs
- ExpressionEvaluator.cs
- StructuredType.cs
- PropertyStore.cs
- ReadOnlyObservableCollection.cs
- ErrorHandlingAcceptor.cs
- ExtensionWindowResizeGrip.cs
- IImplicitResourceProvider.cs
- ImageSourceTypeConverter.cs
- SaveFileDialog.cs
- OneOfElement.cs
- XmlTypeMapping.cs
- MultiAsyncResult.cs
- InvokePattern.cs
- Crc32Helper.cs
- TextParagraphCache.cs
- TokenFactoryBase.cs
- InputQueueChannelAcceptor.cs
- ObjectItemCollection.cs
- HitTestWithGeometryDrawingContextWalker.cs
- activationcontext.cs
- XsdDuration.cs
- XamlNamespaceHelper.cs
- GenericTextProperties.cs
- GeometryDrawing.cs
- ReadOnlyHierarchicalDataSource.cs
- ConnectionManagementSection.cs
- DataRecord.cs
- FileDetails.cs
- NonParentingControl.cs
- Membership.cs
- DSACryptoServiceProvider.cs
- FrameworkTextComposition.cs
- StateMachineExecutionState.cs
- LayoutTableCell.cs
- IndexingContentUnit.cs
- MachineKeySection.cs
- ApplicationServiceHelper.cs
- IgnoreSectionHandler.cs
- SelfIssuedAuthRSACryptoProvider.cs
- ProfilePropertyMetadata.cs
- DefaultAssemblyResolver.cs
- AsymmetricKeyExchangeFormatter.cs
- NativeMethods.cs
- PasswordRecovery.cs
- XmlCharCheckingWriter.cs
- formatter.cs
- DataGridViewLayoutData.cs
- ListControl.cs
- ISSmlParser.cs
- fixedPageContentExtractor.cs
- Simplifier.cs