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
- XmlSchemaSimpleTypeList.cs
- Trustee.cs
- DependencyPropertyValueSerializer.cs
- StatusInfoItem.cs
- DateTimeUtil.cs
- InvariantComparer.cs
- MethodSignatureGenerator.cs
- Sql8ExpressionRewriter.cs
- RegexMatchCollection.cs
- XamlVector3DCollectionSerializer.cs
- DictationGrammar.cs
- DocumentXPathNavigator.cs
- ResourceProviderFactory.cs
- ResourcePool.cs
- HtmlSelect.cs
- QilLiteral.cs
- SQLBytesStorage.cs
- ParserContext.cs
- ColorDialog.cs
- _BufferOffsetSize.cs
- UnsafeNativeMethods.cs
- TableLayoutRowStyleCollection.cs
- CompilerParameters.cs
- DbReferenceCollection.cs
- BufferModesCollection.cs
- RectAnimationClockResource.cs
- XmlSchemaAnnotated.cs
- PathSegmentCollection.cs
- ContractTypeNameElement.cs
- SystemNetworkInterface.cs
- Block.cs
- Configuration.cs
- CompositionTarget.cs
- CreateUserWizard.cs
- KnownTypesProvider.cs
- ZoomPercentageConverter.cs
- ImplicitInputBrush.cs
- CodeBinaryOperatorExpression.cs
- Events.cs
- Condition.cs
- RandomNumberGenerator.cs
- SiteMapDataSource.cs
- ReturnEventArgs.cs
- WebSysDisplayNameAttribute.cs
- TextSearch.cs
- ResXBuildProvider.cs
- DuplicateDetector.cs
- SessionKeyExpiredException.cs
- XamlClipboardData.cs
- RemoteWebConfigurationHostServer.cs
- HeaderedContentControl.cs
- BamlWriter.cs
- NeedSkipTokenVisitor.cs
- ProcessDesigner.cs
- XmlSchemaComplexType.cs
- TrackingProfileDeserializationException.cs
- DataGridViewCellCancelEventArgs.cs
- ScopelessEnumAttribute.cs
- GenericPrincipal.cs
- PageBuildProvider.cs
- StylusDevice.cs
- SettingsSection.cs
- NetworkAddressChange.cs
- OleDbRowUpdatedEvent.cs
- Transform3D.cs
- InputScopeAttribute.cs
- CatalogPartChrome.cs
- HttpVersion.cs
- DbReferenceCollection.cs
- FamilyTypeface.cs
- DashStyles.cs
- AutomationAttributeInfo.cs
- WebMessageEncodingBindingElement.cs
- RuntimeHelpers.cs
- DigestComparer.cs
- DesignerAdapterAttribute.cs
- ContractHandle.cs
- CodeTypeParameterCollection.cs
- FindCriteriaElement.cs
- UnsafeNativeMethods.cs
- KeyValueConfigurationCollection.cs
- DataSourceDescriptorCollection.cs
- BrowserCapabilitiesFactoryBase.cs
- RoleService.cs
- MouseDevice.cs
- VirtualPathProvider.cs
- TrackBarDesigner.cs
- CommonObjectSecurity.cs
- ViewLoader.cs
- SqlProfileProvider.cs
- DataObjectFieldAttribute.cs
- ThousandthOfEmRealDoubles.cs
- IteratorFilter.cs
- AnnotationMap.cs
- SourceLocation.cs
- FileUpload.cs
- HttpFileCollectionBase.cs
- GregorianCalendar.cs
- ClientConvert.cs
- ExpressionBinding.cs