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
- MultiTrigger.cs
- CodeAttributeDeclaration.cs
- StreamSecurityUpgradeAcceptorBase.cs
- ProfilePropertySettingsCollection.cs
- HtmlTextArea.cs
- ItemCollectionEditor.cs
- ListItemCollection.cs
- ListViewPagedDataSource.cs
- TwoPhaseCommit.cs
- FreezableOperations.cs
- IdentityNotMappedException.cs
- MouseWheelEventArgs.cs
- Activity.cs
- DataViewSettingCollection.cs
- HexParser.cs
- WMIGenerator.cs
- HtmlTableRow.cs
- DataSourceControl.cs
- WSTrustFeb2005.cs
- XamlPoint3DCollectionSerializer.cs
- QueryExpr.cs
- BuildResult.cs
- AuditLog.cs
- OpenTypeCommon.cs
- ControlBuilder.cs
- SqlConnectionPoolGroupProviderInfo.cs
- AssertSection.cs
- TypeTypeConverter.cs
- CompositeActivityTypeDescriptor.cs
- SQlBooleanStorage.cs
- ScriptMethodAttribute.cs
- SQLBinary.cs
- DataBoundLiteralControl.cs
- TextCharacters.cs
- MultiBinding.cs
- TaiwanLunisolarCalendar.cs
- RestHandlerFactory.cs
- XPathAxisIterator.cs
- ToolboxItemAttribute.cs
- QilGeneratorEnv.cs
- _IPv6Address.cs
- SchemaInfo.cs
- EntityDesignPluralizationHandler.cs
- SelectionItemPattern.cs
- EntityType.cs
- SliderAutomationPeer.cs
- Thumb.cs
- EntityTypeEmitter.cs
- ScriptDescriptor.cs
- MethodCallConverter.cs
- Claim.cs
- HtmlTableCell.cs
- Pen.cs
- ToolStripPanelDesigner.cs
- ConfigXmlAttribute.cs
- KeyTime.cs
- TimeZone.cs
- CustomCategoryAttribute.cs
- LinearKeyFrames.cs
- TextElementEnumerator.cs
- RoutingBehavior.cs
- StructuredTypeInfo.cs
- DiffuseMaterial.cs
- PrinterUnitConvert.cs
- TdsRecordBufferSetter.cs
- DependencyPropertyAttribute.cs
- QilBinary.cs
- OletxDependentTransaction.cs
- MsdtcWrapper.cs
- WebPartConnection.cs
- SchemaImporterExtension.cs
- Monitor.cs
- AssemblyBuilderData.cs
- PbrsForward.cs
- ModuleElement.cs
- ToolTipService.cs
- ConsoleEntryPoint.cs
- TargetConverter.cs
- ProgressChangedEventArgs.cs
- CodeTryCatchFinallyStatement.cs
- InstanceKeyNotReadyException.cs
- TrustManagerPromptUI.cs
- JoinTreeNode.cs
- _HeaderInfoTable.cs
- PLINQETWProvider.cs
- mongolianshape.cs
- DocumentReferenceCollection.cs
- BamlRecordWriter.cs
- DbConnectionPoolOptions.cs
- Typography.cs
- XpsDocument.cs
- TdsParserSessionPool.cs
- DataGridPagingPage.cs
- MarshalDirectiveException.cs
- RC2CryptoServiceProvider.cs
- StateManagedCollection.cs
- TextDecorationCollection.cs
- DataServiceQueryOfT.cs
- LinkLabel.cs
- TrustSection.cs