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
- Html32TextWriter.cs
- InfoCardSymmetricCrypto.cs
- DiagnosticStrings.cs
- BufferedGraphics.cs
- SystemEvents.cs
- RequestContextBase.cs
- CommonObjectSecurity.cs
- TabRenderer.cs
- RSAPKCS1SignatureDeformatter.cs
- RelationshipManager.cs
- EventItfInfo.cs
- httpserverutility.cs
- EntityDataSourceStatementEditor.cs
- TreeChangeInfo.cs
- SchemaTypeEmitter.cs
- TypeCollectionPropertyEditor.cs
- NoResizeSelectionBorderGlyph.cs
- GreenMethods.cs
- ProcessInfo.cs
- PointLightBase.cs
- DataBindingList.cs
- DesignerDataParameter.cs
- DynamicResourceExtension.cs
- OdbcErrorCollection.cs
- PtsHost.cs
- ContextProperty.cs
- MediaPlayer.cs
- InstalledFontCollection.cs
- MenuItemStyleCollection.cs
- WCFModelStrings.Designer.cs
- AssemblyAttributesGoHere.cs
- OleServicesContext.cs
- Type.cs
- SafeEventHandle.cs
- SessionStateItemCollection.cs
- EdmItemError.cs
- FileBasedResourceGroveler.cs
- ParagraphResult.cs
- ADMembershipUser.cs
- SequentialActivityDesigner.cs
- RegexCaptureCollection.cs
- OracleRowUpdatedEventArgs.cs
- CodeDirectoryCompiler.cs
- ManipulationInertiaStartingEventArgs.cs
- InstanceStoreQueryResult.cs
- BitmapCache.cs
- AsmxEndpointPickerExtension.cs
- NetCodeGroup.cs
- SegmentInfo.cs
- RegexTree.cs
- SafeRightsManagementQueryHandle.cs
- DataGridViewColumnCollection.cs
- GPPOINTF.cs
- CssStyleCollection.cs
- Transform3D.cs
- IIS7UserPrincipal.cs
- ExpressionPrinter.cs
- SelectingProviderEventArgs.cs
- EnumerableRowCollection.cs
- StoreConnection.cs
- AffineTransform3D.cs
- AudioFormatConverter.cs
- SchemaLookupTable.cs
- TextDecorationCollection.cs
- SHA384.cs
- WebHttpDispatchOperationSelector.cs
- PixelFormatConverter.cs
- MeasureData.cs
- DmlSqlGenerator.cs
- CustomLineCap.cs
- WebControl.cs
- ContentValidator.cs
- PersonalizationState.cs
- SiteMapSection.cs
- SystemIcmpV6Statistics.cs
- Trigger.cs
- ComboBoxRenderer.cs
- ActiveXSerializer.cs
- DataTemplate.cs
- BodyWriter.cs
- safex509handles.cs
- Binding.cs
- DocComment.cs
- MenuBase.cs
- ItemCheckedEvent.cs
- WindowsBrush.cs
- RequestCacheManager.cs
- SystemWebSectionGroup.cs
- mediaclock.cs
- UriTemplateMatchException.cs
- GetRecipientListRequest.cs
- BuildProvidersCompiler.cs
- HttpClientProtocol.cs
- NumberFormatter.cs
- FontCollection.cs
- GridViewColumn.cs
- XmlSchemaExternal.cs
- TextDocumentView.cs
- ControlsConfig.cs
- MonikerBuilder.cs