Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- SspiSafeHandles.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- SR.cs
- MailMessageEventArgs.cs
- JsonWriter.cs
- ObjectToModelValueConverter.cs
- XmlUtilWriter.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- UiaCoreTypesApi.cs
- PageCatalogPartDesigner.cs
- HostedElements.cs
- InvokePatternIdentifiers.cs
- Item.cs
- Wizard.cs
- Camera.cs
- ProxyHelper.cs
- ToolboxDataAttribute.cs
- TextTreeTextBlock.cs
- MenuItemBindingCollection.cs
- ModuleElement.cs
- XmlHierarchyData.cs
- OperationInfoBase.cs
- FilterUserControlBase.cs
- PropertyEntry.cs
- XmlDownloadManager.cs
- PropertyPushdownHelper.cs
- HostUtils.cs
- parserscommon.cs
- EncodingNLS.cs
- TokenFactoryBase.cs
- ToolboxDataAttribute.cs
- ObjectSet.cs
- BindableTemplateBuilder.cs
- CommandBindingCollection.cs
- ArcSegment.cs
- DataGridViewSelectedColumnCollection.cs
- StylusButton.cs
- SchemaTypeEmitter.cs
- StateDesigner.cs
- CryptoKeySecurity.cs
- DbException.cs
- HostUtils.cs
- TextServicesPropertyRanges.cs
- CodeAccessPermission.cs
- PictureBox.cs
- LambdaExpression.cs
- ExpressionBuilder.cs
- Transform.cs
- SqlVersion.cs
- Int16AnimationBase.cs
- ColorMatrix.cs
- DataAccessor.cs
- Activation.cs
- FutureFactory.cs
- DesignerLinkAdapter.cs
- Calendar.cs
- WmiPutTraceRecord.cs
- Image.cs
- WebHttpElement.cs
- AsyncParams.cs
- VideoDrawing.cs
- SamlSecurityToken.cs
- PerspectiveCamera.cs
- CheckBoxList.cs
- TraceFilter.cs
- DataColumnPropertyDescriptor.cs
- EmptyReadOnlyDictionaryInternal.cs
- WebZone.cs
- FormsAuthentication.cs
- FileDetails.cs
- ExtendedProperty.cs
- XPathDocument.cs
- ConfigViewGenerator.cs
- ThrowHelper.cs
- HtmlHead.cs
- ErrorWrapper.cs
- EnumerableRowCollection.cs
- HideDisabledControlAdapter.cs
- DrawingAttributes.cs
- IOException.cs
- DefaultValueConverter.cs
- TypefaceMap.cs
- ReadOnlyCollectionBuilder.cs
- ConfigXmlText.cs
- ObjRef.cs
- ConcurrentStack.cs
- NegotiateStream.cs
- TextTreeNode.cs
- ConfigUtil.cs
- ExpressionLexer.cs
- DbReferenceCollection.cs
- securitymgrsite.cs
- AutomationPropertyInfo.cs
- FileLogRecord.cs
- SqlTypeConverter.cs
- JsonReaderDelegator.cs
- AsymmetricAlgorithm.cs
- KeyTime.cs
- BuildManager.cs
- EventHandlersStore.cs