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
- CustomErrorsSection.cs
- AdornerHitTestResult.cs
- RepeatButton.cs
- FileDialog_Vista.cs
- NavigatorOutput.cs
- FontStyle.cs
- OracleCommandBuilder.cs
- WindowsListBox.cs
- OrthographicCamera.cs
- XMLSchema.cs
- EntityUtil.cs
- CrossAppDomainChannel.cs
- DataGridViewElement.cs
- TextDecorationCollection.cs
- InvokeProviderWrapper.cs
- DataBoundControlAdapter.cs
- RuleConditionDialog.cs
- SafeProcessHandle.cs
- ColumnWidthChangingEvent.cs
- FormsAuthenticationUser.cs
- OdbcDataAdapter.cs
- LambdaCompiler.Statements.cs
- XmlNamespaceMapping.cs
- CachedCompositeFamily.cs
- IndentedWriter.cs
- Peer.cs
- FacetDescription.cs
- ReadOnlyCollectionBase.cs
- TextContainerChangedEventArgs.cs
- IssuedTokenParametersElement.cs
- LogicalExpressionTypeConverter.cs
- Propagator.Evaluator.cs
- COM2ComponentEditor.cs
- Model3DCollection.cs
- XslAst.cs
- HtmlUtf8RawTextWriter.cs
- RoutingTable.cs
- ReferentialConstraintRoleElement.cs
- DataServiceHostFactory.cs
- DllNotFoundException.cs
- ListViewItemMouseHoverEvent.cs
- PartialTrustVisibleAssembly.cs
- ActivityMarkupSerializer.cs
- DeflateStream.cs
- StrokeCollection.cs
- EventProxy.cs
- Property.cs
- InvalidateEvent.cs
- DataException.cs
- DataGrid.cs
- AffineTransform3D.cs
- StringBuilder.cs
- ComboBox.cs
- ComplexBindingPropertiesAttribute.cs
- LocalizableAttribute.cs
- CursorInteropHelper.cs
- ParseElementCollection.cs
- ObjectDataSourceView.cs
- SystemIPGlobalProperties.cs
- RoleManagerEventArgs.cs
- ServiceModelExtensionElement.cs
- QueueNameHelper.cs
- FileLogRecordHeader.cs
- StorageBasedPackageProperties.cs
- CardSpacePolicyElement.cs
- Timer.cs
- DataGridViewTextBoxEditingControl.cs
- XpsFilter.cs
- RemoveFromCollection.cs
- WindowsContainer.cs
- WebRequestModuleElement.cs
- DataTableCollection.cs
- EndpointConfigContainer.cs
- PasswordBox.cs
- EarlyBoundInfo.cs
- EventLogReader.cs
- RuntimeTrackingProfile.cs
- KnownTypes.cs
- TreeNodeEventArgs.cs
- EmbossBitmapEffect.cs
- XmlReflectionImporter.cs
- DataSourceSelectArguments.cs
- Query.cs
- ImageList.cs
- ColorConverter.cs
- SqlGatherConsumedAliases.cs
- DataSetMappper.cs
- SimpleBitVector32.cs
- XmlEncodedRawTextWriter.cs
- SettingsPropertyWrongTypeException.cs
- NoClickablePointException.cs
- TextEditorTables.cs
- WinEventWrap.cs
- InstanceContextManager.cs
- ApplicationBuildProvider.cs
- EntityDataSourceValidationException.cs
- TheQuery.cs
- EditorPartChrome.cs
- ArrayList.cs
- SqlLiftWhereClauses.cs