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
- RemotingAttributes.cs
- ProtocolsConfigurationHandler.cs
- HostedImpersonationContext.cs
- PeerInvitationResponse.cs
- Material.cs
- DataControlFieldTypeEditor.cs
- Container.cs
- ElementHost.cs
- CodeSubDirectory.cs
- TraceLog.cs
- NonClientArea.cs
- Rules.cs
- ObjectQuery_EntitySqlExtensions.cs
- UserControlCodeDomTreeGenerator.cs
- regiisutil.cs
- RbTree.cs
- OptimisticConcurrencyException.cs
- HealthMonitoringSection.cs
- NavigationPropertyAccessor.cs
- FilterQuery.cs
- PageCatalogPart.cs
- DashStyle.cs
- TextServicesContext.cs
- ListenerElementsCollection.cs
- DivideByZeroException.cs
- TailCallAnalyzer.cs
- CommandValueSerializer.cs
- SafeCryptoKeyHandle.cs
- SecureStringHasher.cs
- SoapAttributes.cs
- BrowserTree.cs
- DataListGeneralPage.cs
- CompensatableTransactionScopeActivityDesigner.cs
- SaveFileDialog.cs
- ExtensionFile.cs
- PolyBezierSegment.cs
- OletxTransactionFormatter.cs
- SpecularMaterial.cs
- TreeViewDesigner.cs
- EntityCommand.cs
- SecurityCriticalDataForSet.cs
- XomlCompilerError.cs
- Stack.cs
- EntityDataSourceColumn.cs
- CodeCatchClauseCollection.cs
- ScheduleChanges.cs
- WebControlAdapter.cs
- GridViewUpdateEventArgs.cs
- NavigationEventArgs.cs
- XmlResolver.cs
- DirectoryRedirect.cs
- DataSourceUtil.cs
- CheckBoxBaseAdapter.cs
- XmlHelper.cs
- RadioButtonDesigner.cs
- GCHandleCookieTable.cs
- ToolStripMenuItemCodeDomSerializer.cs
- ExtentKey.cs
- PieceNameHelper.cs
- NetStream.cs
- BaseResourcesBuildProvider.cs
- ThreadStartException.cs
- StoryFragments.cs
- X509AsymmetricSecurityKey.cs
- SystemDropShadowChrome.cs
- DbConnectionStringCommon.cs
- HttpTransportBindingElement.cs
- ParserHooks.cs
- DataGridTableCollection.cs
- DataTableTypeConverter.cs
- ThemeInfoAttribute.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- XmlSchemaValidator.cs
- RowSpanVector.cs
- TrackingProfileDeserializationException.cs
- SubMenuStyleCollection.cs
- SafePointer.cs
- FilteredXmlReader.cs
- SafeLocalMemHandle.cs
- TreeView.cs
- DisplayMemberTemplateSelector.cs
- PathGeometry.cs
- XPathChildIterator.cs
- ProtectedConfiguration.cs
- XmlUrlResolver.cs
- AssemblyAttributesGoHere.cs
- SessionStateModule.cs
- TokenFactoryFactory.cs
- DataBindingExpressionBuilder.cs
- ReachBasicContext.cs
- ArgumentNullException.cs
- FieldBuilder.cs
- DragEventArgs.cs
- ListChangedEventArgs.cs
- ActivityCodeDomReferenceService.cs
- NotifyIcon.cs
- RtfFormatStack.cs
- ActivityExecutionFilter.cs
- DataGridColumn.cs
- CharacterBufferReference.cs