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
- BlurEffect.cs
- TdsRecordBufferSetter.cs
- FloaterBaseParaClient.cs
- DataGridViewCellCollection.cs
- regiisutil.cs
- FixedSOMContainer.cs
- CountdownEvent.cs
- FixedPageProcessor.cs
- WebBrowser.cs
- XmlLanguageConverter.cs
- TextViewBase.cs
- CompiledQueryCacheEntry.cs
- SafeNativeMethodsCLR.cs
- MappingException.cs
- FileIOPermission.cs
- WorkflowMarkupSerializerMapping.cs
- ArrowControl.xaml.cs
- DocumentEventArgs.cs
- MenuItem.cs
- EntitySetDataBindingList.cs
- DataGridItemCollection.cs
- Completion.cs
- MarkedHighlightComponent.cs
- wgx_render.cs
- BuildProviderCollection.cs
- Vector3DAnimationBase.cs
- TemplateContentLoader.cs
- VarInfo.cs
- XslCompiledTransform.cs
- CodeEntryPointMethod.cs
- PropertyDescriptorGridEntry.cs
- CDSCollectionETWBCLProvider.cs
- WebMessageBodyStyleHelper.cs
- ScrollPattern.cs
- CompilationRelaxations.cs
- CodeGeneratorAttribute.cs
- _Connection.cs
- AccessDataSource.cs
- CqlGenerator.cs
- ListViewCancelEventArgs.cs
- WeakHashtable.cs
- BufferModeSettings.cs
- InputReport.cs
- MasterPageParser.cs
- DescendantQuery.cs
- SignalGate.cs
- StyleBamlTreeBuilder.cs
- GeneralTransform2DTo3D.cs
- ResourceDisplayNameAttribute.cs
- GroupStyle.cs
- WebServiceErrorEvent.cs
- PropertyMetadata.cs
- QueryContext.cs
- SystemIcons.cs
- ConstrainedDataObject.cs
- ScriptServiceAttribute.cs
- Code.cs
- SqlGatherConsumedAliases.cs
- LineGeometry.cs
- CombinedGeometry.cs
- FlowLayout.cs
- ShellProvider.cs
- IxmlLineInfo.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- Condition.cs
- TickBar.cs
- SettingsAttributes.cs
- WebPartRestoreVerb.cs
- MenuAdapter.cs
- MsmqVerifier.cs
- FlagsAttribute.cs
- StrongNameMembershipCondition.cs
- SubMenuStyleCollection.cs
- SiteMapDataSource.cs
- TypeConvertions.cs
- BrushConverter.cs
- ResourceReferenceExpressionConverter.cs
- _Semaphore.cs
- VersionPair.cs
- XmlILAnnotation.cs
- KeyValueSerializer.cs
- ImageBrush.cs
- HttpCachePolicy.cs
- MenuItemBinding.cs
- ValidateNames.cs
- StyleXamlParser.cs
- Vector3DCollectionValueSerializer.cs
- Pair.cs
- ExtensionWindow.cs
- StringPropertyBuilder.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- ToolBarOverflowPanel.cs
- SplitContainer.cs
- Misc.cs
- TabControl.cs
- MembershipValidatePasswordEventArgs.cs
- DataControlFieldsEditor.cs
- NoneExcludedImageIndexConverter.cs
- SortKey.cs
- DataGridCellsPanel.cs