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
- ReadWriteObjectLock.cs
- NameValueCollection.cs
- SchemaComplexType.cs
- ComponentCollection.cs
- CompilerInfo.cs
- HtmlContainerControl.cs
- WsdlInspector.cs
- SqlFunctions.cs
- DeferredTextReference.cs
- httpserverutility.cs
- PreviewControlDesigner.cs
- DateBoldEvent.cs
- BufferModeSettings.cs
- __Filters.cs
- DispatcherExceptionFilterEventArgs.cs
- ThicknessAnimation.cs
- TextPointerBase.cs
- Panel.cs
- Regex.cs
- ThemeDirectoryCompiler.cs
- XmlSchemaExporter.cs
- IncrementalHitTester.cs
- MessageBox.cs
- SerializationAttributes.cs
- ObjectAssociationEndMapping.cs
- XmlEncodedRawTextWriter.cs
- WorkflowExecutor.cs
- PermissionRequestEvidence.cs
- NetworkInformationPermission.cs
- CodeNamespaceImportCollection.cs
- ConfigXmlCDataSection.cs
- hresults.cs
- EventLogPermissionEntry.cs
- ComProxy.cs
- WebPartsPersonalizationAuthorization.cs
- TypeConverterValueSerializer.cs
- BCryptNative.cs
- LoadedOrUnloadedOperation.cs
- GeometryModel3D.cs
- HttpRequestContext.cs
- ListBoxItemWrapperAutomationPeer.cs
- SystemResourceKey.cs
- CodeGen.cs
- FrameworkElement.cs
- ContentTextAutomationPeer.cs
- SspiSecurityTokenProvider.cs
- PeerCollaboration.cs
- Fonts.cs
- OdbcCommandBuilder.cs
- StrongNameKeyPair.cs
- FamilyMapCollection.cs
- Overlapped.cs
- WorkflowShape.cs
- PageBorderless.cs
- PathGeometry.cs
- BitmapInitialize.cs
- CqlParserHelpers.cs
- UserControl.cs
- TextAdaptor.cs
- COMException.cs
- GCHandleCookieTable.cs
- ScrollPatternIdentifiers.cs
- NotFiniteNumberException.cs
- DataGridTableCollection.cs
- MorphHelper.cs
- CompilationSection.cs
- OneOfScalarConst.cs
- EventLog.cs
- CharUnicodeInfo.cs
- IdentityModelStringsVersion1.cs
- GridViewDesigner.cs
- InheritedPropertyChangedEventArgs.cs
- ApplicationInfo.cs
- TableMethodGenerator.cs
- Types.cs
- RelationshipManager.cs
- ShaperBuffers.cs
- Menu.cs
- UidPropertyAttribute.cs
- UnauthorizedAccessException.cs
- XPathParser.cs
- RewritingValidator.cs
- GeometryDrawing.cs
- EventHandlersStore.cs
- BufferedWebEventProvider.cs
- HiddenFieldPageStatePersister.cs
- InputLangChangeEvent.cs
- ScrollPattern.cs
- GeometryGroup.cs
- ServerValidateEventArgs.cs
- RightsManagementEncryptionTransform.cs
- KeyValueConfigurationCollection.cs
- SchemaElementDecl.cs
- SecurityDocument.cs
- ReferencedType.cs
- RegexWorker.cs
- HtmlTextArea.cs
- BamlStream.cs
- XComponentModel.cs
- DrawingContext.cs