Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Media / Animation / SeekStoryboard.cs / 1 / SeekStoryboard.cs
/****************************************************************************\ * * File: SeekStoryboard.cs * * This object includes a Storyboard reference. When triggered, the Storyboard * seeks to the given offset. * * Copyright (C) by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System.ComponentModel; // DefaultValueAttribute using System.Diagnostics; // Debug.Assert namespace System.Windows.Media.Animation { ////// SeekStoryboard will call seek on its Storyboard reference when /// it is triggered. /// public sealed class SeekStoryboard : ControllableStoryboardAction { ////// A time offset to use for this action. If it is never explicitly /// specified, it will be zero. /// // [DefaultValue(TimeSpan.Zero)] - not usable because TimeSpan.Zero is not a constant expression. public TimeSpan Offset { get { return _offset; } set { if (IsSealed) { throw new InvalidOperationException(SR.Get(SRID.CannotChangeAfterSealed, "SeekStoryboard")); } // TimeSpan is a struct and can't be null - hence no ArgumentNullException check. _offset = value; } } ////// This method is used by TypeDescriptor to determine if this property should /// be serialized. /// // Because we can't use [DefaultValue(TimeSpan.Zero)] - TimeSpan.Zero is not a constant expression. [EditorBrowsable(EditorBrowsableState.Never)] public bool ShouldSerializeOffset() { return !(TimeSpan.Zero.Equals(_offset)); } ////// A time offset origin from which to evaluate the Offset value. /// If it is never explicitly specified, it will be relative to the /// beginning. ("Begin") /// [DefaultValue(TimeSeekOrigin.BeginTime)] public TimeSeekOrigin Origin { get { return _origin; } set { if (IsSealed) { throw new InvalidOperationException(SR.Get(SRID.CannotChangeAfterSealed, "SeekStoryboard")); } if( value == TimeSeekOrigin.BeginTime || value == TimeSeekOrigin.Duration ) // FxCop doesn't like Enum.IsDefined, probably need some central validation mechanism. { _origin = value; } else { throw new ArgumentException(SR.Get(SRID.Storyboard_UnrecognizedTimeSeekOrigin)); } } } ////// Called when it's time to execute this storyboard action /// internal override void Invoke( FrameworkElement containingFE, FrameworkContentElement containingFCE, Storyboard storyboard ) { Debug.Assert( containingFE != null || containingFCE != null, "Caller of internal function failed to verify that we have a FE or FCE - we have neither." ); if( containingFE != null ) { storyboard.Seek(containingFE, Offset, Origin); } else { storyboard.Seek(containingFCE, Offset, Origin); } } TimeSpan _offset = TimeSpan.Zero; TimeSeekOrigin _origin = TimeSeekOrigin.BeginTime; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /****************************************************************************\ * * File: SeekStoryboard.cs * * This object includes a Storyboard reference. When triggered, the Storyboard * seeks to the given offset. * * Copyright (C) by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System.ComponentModel; // DefaultValueAttribute using System.Diagnostics; // Debug.Assert namespace System.Windows.Media.Animation { ////// SeekStoryboard will call seek on its Storyboard reference when /// it is triggered. /// public sealed class SeekStoryboard : ControllableStoryboardAction { ////// A time offset to use for this action. If it is never explicitly /// specified, it will be zero. /// // [DefaultValue(TimeSpan.Zero)] - not usable because TimeSpan.Zero is not a constant expression. public TimeSpan Offset { get { return _offset; } set { if (IsSealed) { throw new InvalidOperationException(SR.Get(SRID.CannotChangeAfterSealed, "SeekStoryboard")); } // TimeSpan is a struct and can't be null - hence no ArgumentNullException check. _offset = value; } } ////// This method is used by TypeDescriptor to determine if this property should /// be serialized. /// // Because we can't use [DefaultValue(TimeSpan.Zero)] - TimeSpan.Zero is not a constant expression. [EditorBrowsable(EditorBrowsableState.Never)] public bool ShouldSerializeOffset() { return !(TimeSpan.Zero.Equals(_offset)); } ////// A time offset origin from which to evaluate the Offset value. /// If it is never explicitly specified, it will be relative to the /// beginning. ("Begin") /// [DefaultValue(TimeSeekOrigin.BeginTime)] public TimeSeekOrigin Origin { get { return _origin; } set { if (IsSealed) { throw new InvalidOperationException(SR.Get(SRID.CannotChangeAfterSealed, "SeekStoryboard")); } if( value == TimeSeekOrigin.BeginTime || value == TimeSeekOrigin.Duration ) // FxCop doesn't like Enum.IsDefined, probably need some central validation mechanism. { _origin = value; } else { throw new ArgumentException(SR.Get(SRID.Storyboard_UnrecognizedTimeSeekOrigin)); } } } ////// Called when it's time to execute this storyboard action /// internal override void Invoke( FrameworkElement containingFE, FrameworkContentElement containingFCE, Storyboard storyboard ) { Debug.Assert( containingFE != null || containingFCE != null, "Caller of internal function failed to verify that we have a FE or FCE - we have neither." ); if( containingFE != null ) { storyboard.Seek(containingFE, Offset, Origin); } else { storyboard.Seek(containingFCE, Offset, Origin); } } TimeSpan _offset = TimeSpan.Zero; TimeSeekOrigin _origin = TimeSeekOrigin.BeginTime; } } // 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
- SuppressIldasmAttribute.cs
- QuestionEventArgs.cs
- MetadataSerializer.cs
- InstanceKeyNotReadyException.cs
- TableCell.cs
- SigningDialog.cs
- BoundsDrawingContextWalker.cs
- ReflectTypeDescriptionProvider.cs
- NamespaceInfo.cs
- ProxyDataContractResolver.cs
- CaseExpr.cs
- BitmapEffectCollection.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- StatusBarAutomationPeer.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- DataGridViewTextBoxCell.cs
- PassportAuthentication.cs
- FilterableAttribute.cs
- WindowsSolidBrush.cs
- SevenBitStream.cs
- EntitySqlQueryBuilder.cs
- OutputCacheModule.cs
- XmlSchemaGroup.cs
- JsonGlobals.cs
- Int16Animation.cs
- BasicCommandTreeVisitor.cs
- XmlImplementation.cs
- Menu.cs
- AuthenticationService.cs
- TypeTypeConverter.cs
- ConnectionOrientedTransportManager.cs
- Animatable.cs
- DataColumnPropertyDescriptor.cs
- AuthStoreRoleProvider.cs
- RangeBase.cs
- ObjectDataSourceDisposingEventArgs.cs
- MsmqVerifier.cs
- Size3D.cs
- MainMenu.cs
- XmlSerializerFaultFormatter.cs
- BitmapCodecInfoInternal.cs
- RepeatBehavior.cs
- returneventsaver.cs
- LoadRetryStrategyFactory.cs
- ServerIdentity.cs
- FusionWrap.cs
- SmtpReplyReader.cs
- GetRecipientRequest.cs
- MergeFilterQuery.cs
- BuildProvidersCompiler.cs
- HttpListenerResponse.cs
- SafeTimerHandle.cs
- CapabilitiesState.cs
- DirectoryInfo.cs
- XmlCharacterData.cs
- IImplicitResourceProvider.cs
- TransformerTypeCollection.cs
- CriticalFinalizerObject.cs
- FunctionQuery.cs
- HostVisual.cs
- LazyInitializer.cs
- ClientCredentialsElement.cs
- ItemCheckedEvent.cs
- Rect3DConverter.cs
- DataViewListener.cs
- versioninfo.cs
- KeyValueInternalCollection.cs
- TextBoxBase.cs
- DataGridViewRowHeaderCell.cs
- MsmqAuthenticationMode.cs
- MergeFailedEvent.cs
- ExtendedPropertyDescriptor.cs
- SecurityException.cs
- QueryOperator.cs
- XmlSchemaObjectCollection.cs
- FixedLineResult.cs
- CookieHandler.cs
- UnsafeNativeMethods.cs
- ADMembershipProvider.cs
- HttpApplicationFactory.cs
- ListBindingConverter.cs
- Help.cs
- EditorZoneBase.cs
- ShaderEffect.cs
- MediaTimeline.cs
- XmlElement.cs
- ListViewItem.cs
- WebPartPersonalization.cs
- XmlBinaryWriter.cs
- UmAlQuraCalendar.cs
- ContourSegment.cs
- SqlRecordBuffer.cs
- OleDbEnumerator.cs
- SafeRightsManagementEnvironmentHandle.cs
- SqlTypesSchemaImporter.cs
- AppLevelCompilationSectionCache.cs
- PointAnimationBase.cs
- WindowAutomationPeer.cs
- DataObject.cs
- File.cs