Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- VisualTreeUtils.cs
- EntityContainerEmitter.cs
- WindowsRichEdit.cs
- DbConnectionInternal.cs
- FormView.cs
- CompModSwitches.cs
- SectionUpdates.cs
- SapiGrammar.cs
- XmlRawWriterWrapper.cs
- TraceHandler.cs
- QilParameter.cs
- _ConnectOverlappedAsyncResult.cs
- FrameworkContentElement.cs
- Bidi.cs
- CodePrimitiveExpression.cs
- Thumb.cs
- Emitter.cs
- CharacterShapingProperties.cs
- GroupStyle.cs
- TypeLoadException.cs
- LabelLiteral.cs
- LogoValidationException.cs
- Unit.cs
- XmlEncodedRawTextWriter.cs
- ScopelessEnumAttribute.cs
- RbTree.cs
- DrawingContextDrawingContextWalker.cs
- DynamicDocumentPaginator.cs
- SafeWaitHandle.cs
- ConditionalExpression.cs
- SparseMemoryStream.cs
- DataGridBoolColumn.cs
- MenuBase.cs
- XmlEncoding.cs
- ValidationRuleCollection.cs
- HttpCacheParams.cs
- SamlConstants.cs
- ApplicationBuildProvider.cs
- StringValueSerializer.cs
- HashCryptoHandle.cs
- ObservableDictionary.cs
- RbTree.cs
- HiddenFieldPageStatePersister.cs
- ObjectQuery.cs
- HwndSource.cs
- ConnectionPoolManager.cs
- Int16Storage.cs
- isolationinterop.cs
- PartialTrustVisibleAssembly.cs
- BinaryReader.cs
- LinearGradientBrush.cs
- X509Extension.cs
- OdbcDataReader.cs
- WebBrowserBase.cs
- PermissionListSet.cs
- WindowsScrollBarBits.cs
- EntityTypeBase.cs
- DrawingState.cs
- RegexCaptureCollection.cs
- SchemaType.cs
- ColumnClickEvent.cs
- RegexCapture.cs
- AppDomainProtocolHandler.cs
- FileDialogCustomPlace.cs
- ParserContext.cs
- DataGridViewCellLinkedList.cs
- SchemaExporter.cs
- Gdiplus.cs
- EntityDataSourceWizardForm.cs
- CngKeyCreationParameters.cs
- Section.cs
- QilPatternFactory.cs
- BeginCreateSecurityTokenRequest.cs
- CellConstantDomain.cs
- WeakEventTable.cs
- XAMLParseException.cs
- DirectoryInfo.cs
- ContentValidator.cs
- DynamicQueryableWrapper.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- SecurityTokenRequirement.cs
- Label.cs
- FrugalList.cs
- UrlAuthorizationModule.cs
- ListChunk.cs
- TriggerCollection.cs
- XmlSchemaImport.cs
- ToolboxComponentsCreatedEventArgs.cs
- ExpressionHelper.cs
- DataGridViewCellParsingEventArgs.cs
- MetaType.cs
- TextCompositionManager.cs
- RegexBoyerMoore.cs
- FlowDocumentScrollViewer.cs
- VariableAction.cs
- FlagsAttribute.cs
- PasswordRecovery.cs
- SplashScreenNativeMethods.cs
- DbBuffer.cs
- DuplicateWaitObjectException.cs