Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- UInt32Storage.cs
- Point3DAnimation.cs
- ClickablePoint.cs
- MissingFieldException.cs
- CharacterBufferReference.cs
- TextFindEngine.cs
- OdbcConnectionPoolProviderInfo.cs
- BaseResourcesBuildProvider.cs
- BindingValueChangedEventArgs.cs
- TextLineBreak.cs
- GetPageNumberCompletedEventArgs.cs
- UdpContractFilterBehavior.cs
- CommandConverter.cs
- Events.cs
- DurationConverter.cs
- ObjectStateEntry.cs
- BaseAutoFormat.cs
- Configuration.cs
- ErrorHandlingReceiver.cs
- diagnosticsswitches.cs
- TextBoxBase.cs
- MsmqBindingMonitor.cs
- XmlValidatingReaderImpl.cs
- JsonReader.cs
- ProtocolsSection.cs
- PersonalizationStateInfoCollection.cs
- PolicyLevel.cs
- FillErrorEventArgs.cs
- MultipleViewPattern.cs
- MailHeaderInfo.cs
- ComboBox.cs
- CodeDOMUtility.cs
- FontFamilyValueSerializer.cs
- NullRuntimeConfig.cs
- _NegoState.cs
- QuadraticBezierSegment.cs
- Queue.cs
- CodeVariableReferenceExpression.cs
- newinstructionaction.cs
- Point.cs
- MissingManifestResourceException.cs
- PasswordBox.cs
- ObjectDataSourceWizardForm.cs
- TrackBarRenderer.cs
- MenuItemCollectionEditor.cs
- ServiceHostFactory.cs
- DocumentOrderQuery.cs
- SizeAnimationBase.cs
- VectorCollectionValueSerializer.cs
- EventToken.cs
- CatalogZone.cs
- SyndicationContent.cs
- HelpInfo.cs
- BitmapInitialize.cs
- MsmqProcessProtocolHandler.cs
- WindowsIdentity.cs
- Style.cs
- TraceData.cs
- SHA512.cs
- BitmapImage.cs
- SingleObjectCollection.cs
- SimpleHandlerBuildProvider.cs
- SafeEventLogWriteHandle.cs
- XmlHierarchyData.cs
- BinaryReader.cs
- XmlQualifiedName.cs
- SessionEndingCancelEventArgs.cs
- DataTableMappingCollection.cs
- PropertyGroupDescription.cs
- X509Chain.cs
- CaseStatement.cs
- SQLInt32.cs
- ColorAnimationUsingKeyFrames.cs
- SubclassTypeValidator.cs
- BindUriHelper.cs
- HtmlTernaryTree.cs
- DirectoryRedirect.cs
- RectAnimation.cs
- SchemaCollectionCompiler.cs
- ClassData.cs
- EntityContainerEntitySet.cs
- ParserContext.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- XmlIlGenerator.cs
- ComponentCommands.cs
- ReadOnlyNameValueCollection.cs
- EntityDataSourceWizardForm.cs
- DataGridViewRowCollection.cs
- ReferenceEqualityComparer.cs
- WebPartManagerDesigner.cs
- PropertyDescriptorGridEntry.cs
- XPathScanner.cs
- CodeSubDirectory.cs
- MultipleViewPattern.cs
- SerialStream.cs
- ShaderRenderModeValidation.cs
- BezierSegment.cs
- EditingScopeUndoUnit.cs
- StreamingContext.cs
- Shape.cs