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
- RectIndependentAnimationStorage.cs
- FastPropertyAccessor.cs
- RequestCachingSection.cs
- ZipIOExtraField.cs
- NamespaceDisplayAutomationPeer.cs
- SendKeys.cs
- DocumentPageHost.cs
- Set.cs
- HttpInputStream.cs
- TextEditorLists.cs
- Baml2006KeyRecord.cs
- LineInfo.cs
- MouseActionConverter.cs
- WebConfigurationHostFileChange.cs
- DoubleLinkList.cs
- AnnotationStore.cs
- DynamicArgumentDialog.cs
- SignatureToken.cs
- TrustManagerPromptUI.cs
- RepeaterItemEventArgs.cs
- Propagator.cs
- sqlnorm.cs
- ApplicationException.cs
- WebConfigurationHost.cs
- FixedSOMTableRow.cs
- SafeMILHandle.cs
- ListBoxItemAutomationPeer.cs
- ClientData.cs
- SafeReversePInvokeHandle.cs
- XmlIncludeAttribute.cs
- PackWebRequestFactory.cs
- TypeLibConverter.cs
- ControlTemplate.cs
- PolicyException.cs
- AuthenticatedStream.cs
- ObjectDataSourceStatusEventArgs.cs
- XmlChildEnumerator.cs
- StrokeNodeOperations.cs
- TemplateField.cs
- HMACMD5.cs
- SqlConnectionPoolProviderInfo.cs
- ClientFormsAuthenticationMembershipProvider.cs
- XsltException.cs
- DecoderBestFitFallback.cs
- ContentElement.cs
- ResourceIDHelper.cs
- EventSchemaTraceListener.cs
- FactoryGenerator.cs
- RoleManagerEventArgs.cs
- DeclarativeCatalogPartDesigner.cs
- EndPoint.cs
- DataTableReaderListener.cs
- Base64Encoder.cs
- AutomationAttributeInfo.cs
- PrintDialogException.cs
- RemotingClientProxy.cs
- CodeGroup.cs
- IncrementalHitTester.cs
- ListViewTableRow.cs
- LinkTarget.cs
- InternalConfigSettingsFactory.cs
- RemoteWebConfigurationHostStream.cs
- DeflateStream.cs
- wgx_exports.cs
- AcceleratedTokenProviderState.cs
- HostUtils.cs
- PersonalizationProviderHelper.cs
- DbProviderFactory.cs
- DesignTimeValidationFeature.cs
- ConsoleCancelEventArgs.cs
- ReflectionPermission.cs
- VerticalAlignConverter.cs
- TransformationRules.cs
- Knowncolors.cs
- ControllableStoryboardAction.cs
- DesignerVerbCollection.cs
- SettingsPropertyValueCollection.cs
- SiteMapNode.cs
- CompressEmulationStream.cs
- BulletedListEventArgs.cs
- DataViewSettingCollection.cs
- ColorConvertedBitmapExtension.cs
- WebPartZoneCollection.cs
- Parameter.cs
- NavigatorInvalidBodyAccessException.cs
- CapiNative.cs
- DesignerSerializerAttribute.cs
- FieldCollectionEditor.cs
- CodeTypeMember.cs
- OutOfProcStateClientManager.cs
- XhtmlTextWriter.cs
- ProfilePropertySettingsCollection.cs
- CodeAttachEventStatement.cs
- LocalizationParserHooks.cs
- SimpleHandlerBuildProvider.cs
- DBConcurrencyException.cs
- ZipIOLocalFileDataDescriptor.cs
- SynchronizedDispatch.cs
- FileDetails.cs
- FixedDocumentSequencePaginator.cs