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
- BasicExpressionVisitor.cs
- FileUpload.cs
- DelayedRegex.cs
- ImageCollectionCodeDomSerializer.cs
- Context.cs
- GenericEnumerator.cs
- LocalIdKeyIdentifierClause.cs
- Transform3DGroup.cs
- XsltLibrary.cs
- DetailsViewModeEventArgs.cs
- PointValueSerializer.cs
- LinearGradientBrush.cs
- SqlCachedBuffer.cs
- DataStreams.cs
- DataGridViewAutoSizeModeEventArgs.cs
- InvalidDocumentContentsException.cs
- CapabilitiesUse.cs
- DataServiceEntityAttribute.cs
- KnownTypesProvider.cs
- QuaternionConverter.cs
- DataListDesigner.cs
- MD5HashHelper.cs
- IsolatedStorageFileStream.cs
- LambdaCompiler.Logical.cs
- SQLMembershipProvider.cs
- CheckBoxFlatAdapter.cs
- DbExpressionVisitor_TResultType.cs
- wmiutil.cs
- GeometryValueSerializer.cs
- DataGridColumnCollection.cs
- RewritingValidator.cs
- MeasureItemEvent.cs
- XmlWrappingReader.cs
- WorkflowOwnershipException.cs
- FunctionQuery.cs
- MetadataItemSerializer.cs
- HTMLTextWriter.cs
- Transform3DGroup.cs
- WeakRefEnumerator.cs
- EmptyEnumerator.cs
- XmlReflectionImporter.cs
- DataGridParentRows.cs
- Panel.cs
- ContainerParaClient.cs
- Size3D.cs
- QuadraticBezierSegment.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- DynamicMethod.cs
- MetadataCacheItem.cs
- SQLConvert.cs
- WindowsSpinner.cs
- HttpCachePolicyElement.cs
- RoutedPropertyChangedEventArgs.cs
- WebPartEditorOkVerb.cs
- X509Certificate2Collection.cs
- TripleDESCryptoServiceProvider.cs
- CqlIdentifiers.cs
- Utils.cs
- PointAnimation.cs
- ClientTargetCollection.cs
- AlphabeticalEnumConverter.cs
- TextEmbeddedObject.cs
- updateconfighost.cs
- MaxMessageSizeStream.cs
- Int32RectConverter.cs
- CapabilitiesSection.cs
- EntityDataSourceColumn.cs
- PropertyState.cs
- PseudoWebRequest.cs
- CalloutQueueItem.cs
- LocalizeDesigner.cs
- UnionCqlBlock.cs
- ResourceDictionary.cs
- WizardPanel.cs
- MenuBase.cs
- DataGridTemplateColumn.cs
- XhtmlBasicObjectListAdapter.cs
- CompoundFileIOPermission.cs
- BindingsCollection.cs
- ScriptingAuthenticationServiceSection.cs
- InkCanvasSelection.cs
- MD5CryptoServiceProvider.cs
- SecurityElement.cs
- File.cs
- AmbientLight.cs
- ProgressBarAutomationPeer.cs
- COM2TypeInfoProcessor.cs
- AssertFilter.cs
- AvTraceFormat.cs
- ValueConversionAttribute.cs
- Int32.cs
- Overlapped.cs
- MDIControlStrip.cs
- XmlNodeList.cs
- DiscoveryMessageSequence11.cs
- DrawingState.cs
- CreatingCookieEventArgs.cs
- _KerberosClient.cs
- ClientClassGenerator.cs
- ListManagerBindingsCollection.cs