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
- ComplexBindingPropertiesAttribute.cs
- TaskSchedulerException.cs
- TextBoxAutomationPeer.cs
- ObjectViewListener.cs
- XPathNodeIterator.cs
- ImageList.cs
- HtmlInputReset.cs
- XmlElementAttribute.cs
- ParagraphVisual.cs
- ErrorEventArgs.cs
- ReachSerializableProperties.cs
- NativeStructs.cs
- ObjectView.cs
- SecurityHelper.cs
- ViewPort3D.cs
- DataBindEngine.cs
- _NtlmClient.cs
- AbstractExpressions.cs
- DelayDesigner.cs
- TextServicesProperty.cs
- ResXDataNode.cs
- X509Certificate.cs
- remotingproxy.cs
- EntityProviderFactory.cs
- DataGridRelationshipRow.cs
- BufferedReadStream.cs
- GroupBoxAutomationPeer.cs
- BaseCodeDomTreeGenerator.cs
- ModelItemCollection.cs
- KeyGestureValueSerializer.cs
- translator.cs
- NetworkInterface.cs
- WebServiceEnumData.cs
- HtmlLiteralTextAdapter.cs
- ProviderSettingsCollection.cs
- TreeNode.cs
- DispatcherTimer.cs
- SqlEnums.cs
- MimeMultiPart.cs
- DiscoveryClientDocuments.cs
- OleTxTransaction.cs
- IISMapPath.cs
- DocumentSchemaValidator.cs
- BinaryUtilClasses.cs
- HtmlLink.cs
- DPCustomTypeDescriptor.cs
- XmlCharType.cs
- ModifierKeysConverter.cs
- XmlSchemaExternal.cs
- TextReturnReader.cs
- SHA256Cng.cs
- MetadataCollection.cs
- MaterialGroup.cs
- RangeValidator.cs
- FixedSOMContainer.cs
- PropertyGroupDescription.cs
- CloseCryptoHandleRequest.cs
- Line.cs
- ValidationRuleCollection.cs
- BinHexDecoder.cs
- TileBrush.cs
- RunInstallerAttribute.cs
- DataTableMapping.cs
- ScriptingProfileServiceSection.cs
- columnmapkeybuilder.cs
- UpdatePanelTrigger.cs
- ServiceModelTimeSpanValidator.cs
- InternalUserCancelledException.cs
- ProcessThread.cs
- StdValidatorsAndConverters.cs
- DbDeleteCommandTree.cs
- Compensate.cs
- SqlBulkCopy.cs
- HotSpot.cs
- TextElementCollection.cs
- MeasureData.cs
- EditorPartCollection.cs
- AsyncDataRequest.cs
- ConditionalWeakTable.cs
- WindowsScrollBar.cs
- XPathBuilder.cs
- HttpCachePolicyElement.cs
- SafeMILHandle.cs
- FloaterParaClient.cs
- OperatingSystem.cs
- Literal.cs
- CodeCatchClauseCollection.cs
- CultureTableRecord.cs
- BrowserCapabilitiesFactory.cs
- CanonicalXml.cs
- IDReferencePropertyAttribute.cs
- ResourceDictionary.cs
- TreeViewItemAutomationPeer.cs
- ResizeGrip.cs
- FormatterConverter.cs
- StateFinalizationDesigner.cs
- ClaimSet.cs
- CredentialCache.cs
- SimpleTypeResolver.cs
- HelpProvider.cs