Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // // 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
- ToolStripHighContrastRenderer.cs
- TabItemAutomationPeer.cs
- XmlObjectSerializerWriteContextComplex.cs
- Message.cs
- smtpconnection.cs
- __ComObject.cs
- SettingsSection.cs
- RowCache.cs
- MarginsConverter.cs
- UIInitializationException.cs
- TransportBindingElementImporter.cs
- ApplicationBuildProvider.cs
- FloaterParagraph.cs
- DataControlFieldCell.cs
- ConfigurationValidatorBase.cs
- addressfiltermode.cs
- XsltArgumentList.cs
- NotCondition.cs
- CheckBoxStandardAdapter.cs
- SymbolType.cs
- DbConnectionFactory.cs
- StringResourceManager.cs
- AttributeProviderAttribute.cs
- MsmqIntegrationInputMessage.cs
- MetadataExporter.cs
- SourceSwitch.cs
- XmlSchemaElement.cs
- HandlerWithFactory.cs
- WindowsProgressbar.cs
- CodeLinePragma.cs
- ImageField.cs
- Comparer.cs
- GraphicsPathIterator.cs
- CodeLabeledStatement.cs
- StringFormat.cs
- NativeBuffer.cs
- DocumentSchemaValidator.cs
- SubtreeProcessor.cs
- WindowsImpersonationContext.cs
- OracleBinary.cs
- FormViewRow.cs
- TraceUtility.cs
- SqlTypesSchemaImporter.cs
- DependencyPropertyHelper.cs
- ContentPlaceHolder.cs
- XXXOnTypeBuilderInstantiation.cs
- NameValueSectionHandler.cs
- RequestStatusBarUpdateEventArgs.cs
- BoolExpr.cs
- DynamicResourceExtensionConverter.cs
- HandlerBase.cs
- TrustExchangeException.cs
- Baml2006KeyRecord.cs
- DSASignatureDeformatter.cs
- DrawingDrawingContext.cs
- ViewStateModeByIdAttribute.cs
- XmlUrlEditor.cs
- ProgressBarHighlightConverter.cs
- SynchronizedPool.cs
- ListSourceHelper.cs
- Application.cs
- XmlSchemaComplexContentRestriction.cs
- CodeArgumentReferenceExpression.cs
- BindUriHelper.cs
- PolyLineSegment.cs
- Internal.cs
- EncodingDataItem.cs
- RegexTree.cs
- Hash.cs
- AnnotationResource.cs
- SubMenuStyle.cs
- XamlReaderHelper.cs
- XmlIlGenerator.cs
- XmlIgnoreAttribute.cs
- ConstrainedGroup.cs
- WebDisplayNameAttribute.cs
- TimelineGroup.cs
- ConfigurationElementProperty.cs
- TreeNode.cs
- FloatSumAggregationOperator.cs
- HealthMonitoringSectionHelper.cs
- CodeGeneratorOptions.cs
- RootBrowserWindowProxy.cs
- SweepDirectionValidation.cs
- Root.cs
- SystemWebSectionGroup.cs
- XsltContext.cs
- bindurihelper.cs
- ChildTable.cs
- CodeTypeDeclaration.cs
- CursorConverter.cs
- InputElement.cs
- BufferAllocator.cs
- SchemaEntity.cs
- MasterPageParser.cs
- FormatConvertedBitmap.cs
- HtmlInputText.cs
- PropertyMetadata.cs
- ExtendedPropertyDescriptor.cs
- DropShadowBitmapEffect.cs