Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Media / Animation / SeekStoryboard.cs / 1305600 / 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
- SmtpDigestAuthenticationModule.cs
- BuiltInExpr.cs
- OutKeywords.cs
- NameObjectCollectionBase.cs
- EventDescriptor.cs
- BitmapDownload.cs
- BodyWriter.cs
- WebConfigurationHostFileChange.cs
- WebZone.cs
- InputBinding.cs
- BindingContext.cs
- WebMessageEncodingBindingElement.cs
- HwndSourceKeyboardInputSite.cs
- WebPartConnectionCollection.cs
- _ConnectStream.cs
- DrawListViewSubItemEventArgs.cs
- unitconverter.cs
- ReadOnlyCollection.cs
- DataObjectAttribute.cs
- LinkClickEvent.cs
- Model3DCollection.cs
- HiddenFieldDesigner.cs
- XmlILOptimizerVisitor.cs
- XmlSignificantWhitespace.cs
- XmlDataProvider.cs
- ClientSideQueueItem.cs
- RegistrySecurity.cs
- LineSegment.cs
- DataObject.cs
- UIElementPropertyUndoUnit.cs
- ServiceObjectContainer.cs
- TypeToken.cs
- ParameterBuilder.cs
- CaseStatement.cs
- ProfileParameter.cs
- SelectManyQueryOperator.cs
- ProcessHostConfigUtils.cs
- FieldMetadata.cs
- CustomMenuItemCollection.cs
- ListBindingHelper.cs
- PassportAuthenticationEventArgs.cs
- AuthenticateEventArgs.cs
- ProfileManager.cs
- BitmapFrameDecode.cs
- DependencyPropertyDescriptor.cs
- ProgressChangedEventArgs.cs
- IPCCacheManager.cs
- XmlAnyElementAttributes.cs
- DecoderReplacementFallback.cs
- EnumerableWrapperWeakToStrong.cs
- SecurityHeaderElementInferenceEngine.cs
- XmlSchemaSimpleTypeUnion.cs
- RepeatBehavior.cs
- DesignerInterfaces.cs
- HttpSessionStateWrapper.cs
- ColorTransformHelper.cs
- XLinq.cs
- XmlSchemaSimpleContent.cs
- EntityTypeEmitter.cs
- DBNull.cs
- AudioDeviceOut.cs
- PointHitTestResult.cs
- PeerUnsafeNativeCryptMethods.cs
- QilPatternFactory.cs
- UInt16Converter.cs
- ColorTransform.cs
- XPathNodeInfoAtom.cs
- CompiledXpathExpr.cs
- ImageDrawing.cs
- UIPermission.cs
- Action.cs
- PathFigureCollection.cs
- AttributeCollection.cs
- IxmlLineInfo.cs
- Evidence.cs
- FrameworkContentElementAutomationPeer.cs
- FrameworkContentElement.cs
- ByteAnimation.cs
- MemberExpression.cs
- TranslateTransform3D.cs
- EarlyBoundInfo.cs
- SimplePropertyEntry.cs
- _NtlmClient.cs
- GeometryModel3D.cs
- TaskHelper.cs
- complextypematerializer.cs
- SafeCertificateContext.cs
- IndentedTextWriter.cs
- SafeFileMappingHandle.cs
- DisableDpiAwarenessAttribute.cs
- Switch.cs
- BinHexEncoder.cs
- Function.cs
- ChildrenQuery.cs
- ReflectionHelper.cs
- BCLDebug.cs
- XsdDateTime.cs
- SwitchLevelAttribute.cs
- RowBinding.cs
- PreservationFileWriter.cs