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
- ResourceKey.cs
- UrlMappingsModule.cs
- ObjectStateFormatter.cs
- DetailsViewInsertEventArgs.cs
- AspNetRouteServiceHttpHandler.cs
- UserControlDesigner.cs
- LinkGrep.cs
- ActivationServices.cs
- IdentityModelDictionary.cs
- CellParaClient.cs
- SqlDataSource.cs
- TypeHelper.cs
- TemplateModeChangedEventArgs.cs
- EncryptedType.cs
- DataColumnChangeEvent.cs
- newinstructionaction.cs
- TraceSection.cs
- XmlNodeReader.cs
- clipboard.cs
- CodeMethodInvokeExpression.cs
- DocumentGridPage.cs
- OleCmdHelper.cs
- SchemaCollectionPreprocessor.cs
- RelatedImageListAttribute.cs
- WebZone.cs
- UpdateRecord.cs
- HTMLTextWriter.cs
- ListItemDetailViewAttribute.cs
- NativeMethods.cs
- WorkflowServiceHostFactory.cs
- ImportContext.cs
- FileUpload.cs
- SystemColors.cs
- FilteredXmlReader.cs
- FixedNode.cs
- x509store.cs
- Screen.cs
- ComponentResourceKey.cs
- DtdParser.cs
- UTF32Encoding.cs
- DbResourceAllocator.cs
- IconConverter.cs
- EpmSyndicationContentSerializer.cs
- BatchStream.cs
- connectionpool.cs
- CreateParams.cs
- ListViewGroupItemCollection.cs
- glyphs.cs
- Margins.cs
- invalidudtexception.cs
- SmtpFailedRecipientException.cs
- LoginView.cs
- StylusButtonEventArgs.cs
- SchemaNames.cs
- PasswordDeriveBytes.cs
- DoubleStorage.cs
- HMACSHA1.cs
- HostSecurityManager.cs
- Label.cs
- TextServicesLoader.cs
- TypeUsageBuilder.cs
- FacetValues.cs
- XmlSchemaInferenceException.cs
- PointCollectionConverter.cs
- CacheSection.cs
- MouseGestureConverter.cs
- LocalizableAttribute.cs
- PropertyValidationContext.cs
- TransactedBatchingBehavior.cs
- PassportPrincipal.cs
- DataGridLinkButton.cs
- RegexInterpreter.cs
- RewritingProcessor.cs
- ExternalDataExchangeClient.cs
- NetTcpBindingElement.cs
- DependencyStoreSurrogate.cs
- ImpersonateTokenRef.cs
- FirstMatchCodeGroup.cs
- XmlIgnoreAttribute.cs
- Trace.cs
- XslTransformFileEditor.cs
- StateInitialization.cs
- IncrementalReadDecoders.cs
- TemplateContainer.cs
- SingleObjectCollection.cs
- CopyAttributesAction.cs
- GZipDecoder.cs
- RandomNumberGenerator.cs
- FlowPosition.cs
- BindingManagerDataErrorEventArgs.cs
- CollectionTypeElement.cs
- DefinitionUpdate.cs
- FixedSchema.cs
- FileDialog_Vista.cs
- Monitor.cs
- OleDbMetaDataFactory.cs
- RequestResponse.cs
- CommandValueSerializer.cs
- InputMethod.cs
- SvcMapFileLoader.cs