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
- DbDataRecord.cs
- OletxTransactionFormatter.cs
- RewritingPass.cs
- CheckBox.cs
- EmbeddedMailObject.cs
- XmlSchemaObjectTable.cs
- ViewManager.cs
- dataobject.cs
- SqlUdtInfo.cs
- PreProcessor.cs
- ListViewGroupItemCollection.cs
- ScriptServiceAttribute.cs
- DecoderNLS.cs
- ReaderWriterLock.cs
- HierarchicalDataSourceControl.cs
- DataServiceRequestOfT.cs
- MenuScrollingVisibilityConverter.cs
- RegistrationServices.cs
- WebPartVerbCollection.cs
- MorphHelpers.cs
- DetailsViewRow.cs
- WebServiceFaultDesigner.cs
- WebServiceResponseDesigner.cs
- IgnoreDeviceFilterElement.cs
- HttpRuntime.cs
- RepeaterDesigner.cs
- Drawing.cs
- SafeRegistryHandle.cs
- SqlConnectionPoolGroupProviderInfo.cs
- SendSecurityHeaderElementContainer.cs
- DataGridViewRowsRemovedEventArgs.cs
- CodeNamespaceCollection.cs
- Sql8ConformanceChecker.cs
- KeyTimeConverter.cs
- WebPartZoneAutoFormat.cs
- WebPartManagerInternals.cs
- FlowDocumentPage.cs
- StrokeNode.cs
- SecureConversationVersion.cs
- StylusCaptureWithinProperty.cs
- CompoundFileReference.cs
- CellIdBoolean.cs
- Properties.cs
- OptimisticConcurrencyException.cs
- FileNotFoundException.cs
- Trace.cs
- ModelTreeEnumerator.cs
- TokenizerHelper.cs
- MobileSysDescriptionAttribute.cs
- XmlILModule.cs
- FontStyleConverter.cs
- DoubleLink.cs
- BinHexEncoder.cs
- X509RawDataKeyIdentifierClause.cs
- RoutingEndpointTrait.cs
- MaterialGroup.cs
- AttributeAction.cs
- SafeEventHandle.cs
- SettingsPropertyWrongTypeException.cs
- PersistenceProviderElement.cs
- InvokeWebServiceDesigner.cs
- BindingMAnagerBase.cs
- Compiler.cs
- TransformPatternIdentifiers.cs
- securitymgrsite.cs
- EmptyQuery.cs
- ELinqQueryState.cs
- DiagnosticTraceSource.cs
- SimpleHandlerBuildProvider.cs
- CodeExpressionCollection.cs
- CodeCatchClauseCollection.cs
- AmbientLight.cs
- ActionItem.cs
- ThrowHelper.cs
- PostBackTrigger.cs
- DataFormat.cs
- SimpleLine.cs
- InheritanceAttribute.cs
- TextBoxView.cs
- SerializationObjectManager.cs
- ActivationArguments.cs
- ProtectedProviderSettings.cs
- DesignerVerbCollection.cs
- TraceSwitch.cs
- StaticExtension.cs
- ScalarOps.cs
- LocalValueEnumerator.cs
- KeyConstraint.cs
- PageCodeDomTreeGenerator.cs
- NumericExpr.cs
- SolidBrush.cs
- Rect3DValueSerializer.cs
- EventBuilder.cs
- ErrorWebPart.cs
- WindowsTitleBar.cs
- MetadataWorkspace.cs
- ExpressionWriter.cs
- Message.cs
- InkCollectionBehavior.cs
- SmtpReplyReaderFactory.cs