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
- PrefixHandle.cs
- StateManagedCollection.cs
- ColorTranslator.cs
- HtmlHead.cs
- Constraint.cs
- ServiceOperationParameter.cs
- MessageBox.cs
- XmlWrappingWriter.cs
- SafeRightsManagementQueryHandle.cs
- DetailsViewRowCollection.cs
- AutoScrollExpandMessageFilter.cs
- WebPartEditorApplyVerb.cs
- SortAction.cs
- HandledEventArgs.cs
- Dictionary.cs
- GridViewRowCollection.cs
- CmsInterop.cs
- EnumerableRowCollectionExtensions.cs
- HiddenFieldPageStatePersister.cs
- PointConverter.cs
- StringReader.cs
- XmlBinaryReader.cs
- DependencyPropertyValueSerializer.cs
- PeerToPeerException.cs
- DurableEnlistmentState.cs
- StorageRoot.cs
- BinaryFormatterWriter.cs
- AsymmetricSignatureFormatter.cs
- DateTimeValueSerializerContext.cs
- DriveInfo.cs
- DataBoundLiteralControl.cs
- Reference.cs
- ReadWriteSpinLock.cs
- DependencySource.cs
- InternalCache.cs
- RelationshipSet.cs
- DataGridViewColumnEventArgs.cs
- InkCollectionBehavior.cs
- Decoder.cs
- TemplateControl.cs
- ConditionedDesigner.cs
- DummyDataSource.cs
- ByteStack.cs
- ResourceAssociationTypeEnd.cs
- Transform3D.cs
- Tokenizer.cs
- SQLDouble.cs
- InheritanceAttribute.cs
- EntityDesignerBuildProvider.cs
- Expression.cs
- TargetFrameworkUtil.cs
- XmlComment.cs
- StackOverflowException.cs
- UIInitializationException.cs
- DocumentPageTextView.cs
- ConnectionPoint.cs
- ChtmlMobileTextWriter.cs
- FreezableDefaultValueFactory.cs
- MethodToken.cs
- CorrelationService.cs
- OdbcEnvironment.cs
- ReferenceEqualityComparer.cs
- SqlEnums.cs
- DataRowCollection.cs
- DesignTimeData.cs
- GradientStopCollection.cs
- RelationshipEndCollection.cs
- ToolStripSystemRenderer.cs
- TypeContext.cs
- TdsEnums.cs
- CodeComment.cs
- ReflectionTypeLoadException.cs
- SqlParameterizer.cs
- Overlapped.cs
- RoutedEventArgs.cs
- ResourceWriter.cs
- List.cs
- ClrPerspective.cs
- RSAOAEPKeyExchangeFormatter.cs
- PropertyEntry.cs
- VSWCFServiceContractGenerator.cs
- ClientTargetCollection.cs
- _WebProxyDataBuilder.cs
- AdornerDecorator.cs
- EventHandlingScope.cs
- DependencyPropertyValueSerializer.cs
- Registry.cs
- GridViewRowEventArgs.cs
- TextRangeEdit.cs
- CardSpacePolicyElement.cs
- ConfigurationStrings.cs
- ViewStateException.cs
- FixedTextContainer.cs
- _UriTypeConverter.cs
- ModelChangedEventArgsImpl.cs
- PrintControllerWithStatusDialog.cs
- SystemWebCachingSectionGroup.cs
- StdRegProviderWrapper.cs
- HotSpot.cs
- CFStream.cs