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
- ObjectItemLoadingSessionData.cs
- BaseCAMarshaler.cs
- SqlDataReader.cs
- ParameterInfo.cs
- PerfCounters.cs
- AsyncContentLoadedEventArgs.cs
- NavigationProgressEventArgs.cs
- ScriptManagerProxy.cs
- Column.cs
- ErrorEventArgs.cs
- InputScope.cs
- DbDataAdapter.cs
- MetadataItemCollectionFactory.cs
- PageClientProxyGenerator.cs
- ResXResourceWriter.cs
- Opcode.cs
- FixedSOMGroup.cs
- ListViewInsertionMark.cs
- ExtendedPropertyDescriptor.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- CodePageEncoding.cs
- RequestContext.cs
- MetadataCollection.cs
- UnicastIPAddressInformationCollection.cs
- DataObjectMethodAttribute.cs
- EntityDataSourceUtil.cs
- DbConnectionPoolIdentity.cs
- MouseActionConverter.cs
- TreeViewDesigner.cs
- DirectoryInfo.cs
- BindValidator.cs
- httpstaticobjectscollection.cs
- BitmapImage.cs
- FragmentQueryProcessor.cs
- OdbcReferenceCollection.cs
- ContextBase.cs
- XamlFigureLengthSerializer.cs
- QilInvokeLateBound.cs
- SQLResource.cs
- ADConnectionHelper.cs
- BuilderPropertyEntry.cs
- _Rfc2616CacheValidators.cs
- BreadCrumbTextConverter.cs
- FrameworkContentElement.cs
- SurrogateSelector.cs
- XmlSchemaImport.cs
- TranslateTransform3D.cs
- COM2IProvidePropertyBuilderHandler.cs
- TextEffect.cs
- EntityCommandExecutionException.cs
- SmtpFailedRecipientsException.cs
- ReadOnlyHierarchicalDataSourceView.cs
- ResourceKey.cs
- SqlProfileProvider.cs
- MetadataItemEmitter.cs
- NullableDecimalAverageAggregationOperator.cs
- PerformanceCounterCategory.cs
- MessageQueuePermissionEntryCollection.cs
- DrawingAttributeSerializer.cs
- WhereQueryOperator.cs
- DomainUpDown.cs
- DesignerDataParameter.cs
- WebResponse.cs
- SqlCacheDependencySection.cs
- XamlGridLengthSerializer.cs
- WebPartCatalogAddVerb.cs
- ProfessionalColorTable.cs
- latinshape.cs
- NotificationContext.cs
- ReadContentAsBinaryHelper.cs
- BuildResult.cs
- SpecialNameAttribute.cs
- EndpointAddressMessageFilter.cs
- XmlDataSource.cs
- SplineKeyFrames.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- BindingMAnagerBase.cs
- SimpleTypeResolver.cs
- ContextActivityUtils.cs
- WindowsImpersonationContext.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- HttpMethodAttribute.cs
- DataGridViewHeaderCell.cs
- RunClient.cs
- X509Chain.cs
- XmlNavigatorFilter.cs
- StatusBarItemAutomationPeer.cs
- SiteMapNode.cs
- AssociatedControlConverter.cs
- ResourceType.cs
- PointF.cs
- PageFunction.cs
- TypeSemantics.cs
- TagMapInfo.cs
- CommunicationObjectFaultedException.cs
- MessageBuilder.cs
- FolderLevelBuildProvider.cs
- FamilyMapCollection.cs
- TimeoutConverter.cs
- DataGridColumnReorderingEventArgs.cs