Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- MenuRendererClassic.cs
- WindowsSolidBrush.cs
- SafeCryptHandles.cs
- OutputCacheProfileCollection.cs
- DataFormat.cs
- SoapSchemaImporter.cs
- BaseTemplateParser.cs
- BitmapEffectDrawing.cs
- Visual3DCollection.cs
- HtmlInputRadioButton.cs
- IImplicitResourceProvider.cs
- EditorPartCollection.cs
- Reference.cs
- EdmPropertyAttribute.cs
- BehaviorDragDropEventArgs.cs
- ProtocolsSection.cs
- ColumnMapProcessor.cs
- AssertSection.cs
- webbrowsersite.cs
- VisualBrush.cs
- DbProviderFactories.cs
- MultiByteCodec.cs
- ServiceOperation.cs
- InstanceKeyCollisionException.cs
- ChangePasswordDesigner.cs
- ExceptionHandlerDesigner.cs
- WebPartDescription.cs
- PersonalizationProviderHelper.cs
- DataGridViewLinkCell.cs
- DigestComparer.cs
- Compiler.cs
- CacheAxisQuery.cs
- DebugHandleTracker.cs
- PKCS1MaskGenerationMethod.cs
- COM2FontConverter.cs
- BaseTemplateBuildProvider.cs
- DesignerActionUI.cs
- SrgsToken.cs
- RegexStringValidatorAttribute.cs
- VarRefManager.cs
- XmlWrappingWriter.cs
- BitmapInitialize.cs
- OleDbConnection.cs
- EventHandlersStore.cs
- TabControl.cs
- ToolBarOverflowPanel.cs
- Int16.cs
- FixedTextView.cs
- NavigationService.cs
- ADMembershipUser.cs
- XmlSchemaAnnotation.cs
- WhitespaceReader.cs
- MD5CryptoServiceProvider.cs
- SafeIUnknown.cs
- Brush.cs
- PassportIdentity.cs
- DataGridCaption.cs
- Rss20FeedFormatter.cs
- ServiceRoute.cs
- IBuiltInEvidence.cs
- ParentQuery.cs
- SqlBulkCopy.cs
- StatusBarPanelClickEvent.cs
- InputLanguage.cs
- DoubleUtil.cs
- BinaryParser.cs
- JsonServiceDocumentSerializer.cs
- ProcessHostConfigUtils.cs
- HttpProtocolReflector.cs
- ApplicationServiceHelper.cs
- AsymmetricKeyExchangeDeformatter.cs
- DataGridViewLinkColumn.cs
- UrlMappingCollection.cs
- WS2007HttpBinding.cs
- BufferedWebEventProvider.cs
- validationstate.cs
- SQLStringStorage.cs
- Stackframe.cs
- XmlWhitespace.cs
- SettingsPropertyValue.cs
- PageCodeDomTreeGenerator.cs
- DeclarationUpdate.cs
- WhiteSpaceTrimStringConverter.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- DataServiceQueryOfT.cs
- XPathConvert.cs
- WebBrowser.cs
- TabControlAutomationPeer.cs
- BlurEffect.cs
- XmlSchemaValidator.cs
- IdnElement.cs
- AxImporter.cs
- WebPartConnectionsConfigureVerb.cs
- ExpressionNode.cs
- Underline.cs
- StateMachine.cs
- Imaging.cs
- MutableAssemblyCacheEntry.cs
- WebPartsSection.cs
- BitmapFrameDecode.cs