Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Media / Animation / SeekStoryboard.cs / 1305600 / 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
- MenuItem.cs
- Matrix3D.cs
- TemplateAction.cs
- VBCodeProvider.cs
- SpecularMaterial.cs
- WSIdentityFaultException.cs
- HttpProfileGroupBase.cs
- XmlAttributes.cs
- GroupItem.cs
- PropertyGeneratedEventArgs.cs
- AssemblyBuilder.cs
- CardSpaceException.cs
- MatrixIndependentAnimationStorage.cs
- NavigationWindowAutomationPeer.cs
- ISessionStateStore.cs
- XmlValidatingReader.cs
- PointHitTestResult.cs
- WindowsFormsSectionHandler.cs
- Ref.cs
- SvcFileManager.cs
- WinEventWrap.cs
- ProtocolImporter.cs
- MetadataElement.cs
- BamlStream.cs
- TransformerTypeCollection.cs
- CheckoutException.cs
- CodePageUtils.cs
- SecureEnvironment.cs
- HuffmanTree.cs
- XomlSerializationHelpers.cs
- LayoutSettings.cs
- ISO2022Encoding.cs
- SqlException.cs
- ByteAnimationUsingKeyFrames.cs
- WebBrowser.cs
- SynchronizedInputProviderWrapper.cs
- ByteAnimationBase.cs
- Function.cs
- RequestCache.cs
- ToolStripItemRenderEventArgs.cs
- util.cs
- ValueConversionAttribute.cs
- SessionStateContainer.cs
- ImageList.cs
- ServiceContractViewControl.Designer.cs
- InlineObject.cs
- ButtonBaseAdapter.cs
- RtfNavigator.cs
- SchemaTypeEmitter.cs
- DataBindingCollection.cs
- ConsoleKeyInfo.cs
- DataList.cs
- MinimizableAttributeTypeConverter.cs
- TextBox.cs
- DataGridViewCellCancelEventArgs.cs
- EmptyQuery.cs
- ZipIOModeEnforcingStream.cs
- LabelEditEvent.cs
- HtmlProps.cs
- SchemaNames.cs
- BindingCollection.cs
- MetadataStore.cs
- ArcSegment.cs
- XmlSchemaValidationException.cs
- ContainerActivationHelper.cs
- DataGridColumn.cs
- CapiSymmetricAlgorithm.cs
- XmlSchemaProviderAttribute.cs
- GPStream.cs
- UnsafeNativeMethods.cs
- ByteAnimation.cs
- FrameworkElementAutomationPeer.cs
- DateRangeEvent.cs
- AppDomainManager.cs
- CustomAttributeBuilder.cs
- DPCustomTypeDescriptor.cs
- BreakRecordTable.cs
- _DynamicWinsockMethods.cs
- EditCommandColumn.cs
- MarshalDirectiveException.cs
- XmlBoundElement.cs
- PersistenceException.cs
- PropertyGroupDescription.cs
- QueryOutputWriter.cs
- Nullable.cs
- precedingsibling.cs
- SecurityPolicySection.cs
- RTLAwareMessageBox.cs
- StateMachineExecutionState.cs
- SqlNodeAnnotation.cs
- Parameter.cs
- DataGridViewColumnConverter.cs
- CheckBox.cs
- TemplateManager.cs
- NativeWindow.cs
- Mapping.cs
- ComPlusDiagnosticTraceSchemas.cs
- CollectionDataContractAttribute.cs
- GlobalizationAssembly.cs
- SQLInt64Storage.cs