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
- WSFederationHttpSecurityElement.cs
- MethodRental.cs
- ManipulationVelocities.cs
- SiteMapProvider.cs
- DataBindingCollection.cs
- TextProperties.cs
- BitmapEffectDrawingContextWalker.cs
- Tokenizer.cs
- SystemKeyConverter.cs
- FixedFlowMap.cs
- EventSetterHandlerConverter.cs
- ProviderUtil.cs
- PointConverter.cs
- TextServicesDisplayAttribute.cs
- StylusPointDescription.cs
- ContextMenu.cs
- Roles.cs
- RemoteCryptoRsaServiceProvider.cs
- CombinedGeometry.cs
- JournalNavigationScope.cs
- SynchronousChannel.cs
- TextContainerHelper.cs
- IntegerValidator.cs
- NamespaceCollection.cs
- CasesDictionary.cs
- MtomMessageEncoder.cs
- EventManager.cs
- TdsParserHelperClasses.cs
- WebExceptionStatus.cs
- XmlSchemaIdentityConstraint.cs
- OutputCache.cs
- RadialGradientBrush.cs
- ScriptingJsonSerializationSection.cs
- Ops.cs
- Matrix3DValueSerializer.cs
- TemplateBuilder.cs
- BaseValidator.cs
- WorkflowApplicationAbortedException.cs
- StrongNameMembershipCondition.cs
- SelectedDatesCollection.cs
- safelinkcollection.cs
- AuthenticationSection.cs
- RtType.cs
- PrintPreviewDialog.cs
- ChangeDirector.cs
- QilTernary.cs
- NameSpaceEvent.cs
- SqlRowUpdatingEvent.cs
- RegexRunner.cs
- CommandDevice.cs
- SapiRecoContext.cs
- WindowsFormsSectionHandler.cs
- GlobalId.cs
- FramingChannels.cs
- ObjectDataSourceDisposingEventArgs.cs
- HierarchicalDataBoundControl.cs
- PackagePart.cs
- BuildProvider.cs
- ClientScriptItemCollection.cs
- TableLayoutSettingsTypeConverter.cs
- SchemaImporterExtensionElement.cs
- DataGridColumn.cs
- EventMetadata.cs
- Mutex.cs
- DataStorage.cs
- NetPeerTcpBindingCollectionElement.cs
- ListViewInsertEventArgs.cs
- StrongNamePublicKeyBlob.cs
- CharStorage.cs
- FormView.cs
- StylusPointPropertyUnit.cs
- mda.cs
- Listbox.cs
- MD5Cng.cs
- SignedInfo.cs
- Guid.cs
- HyperLink.cs
- ProfilePropertyMetadata.cs
- GridErrorDlg.cs
- ServiceHostFactory.cs
- TypeDescriptionProvider.cs
- FileUtil.cs
- Soap.cs
- MethodBody.cs
- Environment.cs
- PeerInputChannelListener.cs
- RawStylusSystemGestureInputReport.cs
- TextBox.cs
- Resources.Designer.cs
- CompilerError.cs
- AdornedElementPlaceholder.cs
- DistinctQueryOperator.cs
- SettingsAttributes.cs
- RuleDefinitions.cs
- WindowsContainer.cs
- ListViewInsertionMark.cs
- ParameterReplacerVisitor.cs
- VSDExceptions.cs
- GenericXmlSecurityTokenAuthenticator.cs
- DataControlFieldCollection.cs