Represents the duration of time that a Timeline is active.
<object property="durationString" .../>
|Time span||[days.]hours:minutes:seconds[.fractionalSeconds]||"0:0:15"||Start to end is 15 seconds.|
|Literal "Automatic"||Automatic||"Automatic"||See Remarks.|
|Literal "Forever"||Forever||"Forever"||See Remarks.|
- In the grammar above,  indicates optional values, the  are not literals. The : (colon) and . (period) characters are both literals.
- Values for hours can be any integer value between 0 and 23 inclusive. Values for minutes and seconds can be any integer value between 0 and 59 inclusive. The value for days can be very large, but does have an unspecified upper bound. The decimal value for fractionalSeconds (with the decimal point included) must be between 0 and 1.
- Automatic and Forever are literal strings that hold special meaning for a Duration. See Animation Overview.
Creating a Duration, KeyTime, RepeatBehavior, or TimeSpan in XAML or in script is only possible through a type conversion syntax when setting a property such as Duration that takes one of these types, with the value specified as a string. The string format for specifying a time span in each of these types is identical. Duration can also take the literals "Automatic" and "Forever". RepeatBehavior can take the literal "Forever" and also an iterations syntax "#x".
The main scenario for working with a Duration as an object in script is to get or set its Seconds property in order to query or change an existing animation value.
Specifying a Duration by only an integer without any time span literal characters such as : or . will result in a Duration of that number of days! This is seldom the intended result. Usually you specify animation durations in seconds. As such, the Duration string must include preceding zero values for hours and minutes, along with the appropriate literal : characters as separators between hours, minutes and seconds. For instance, to specify a Duration of five seconds, the Duration string would be "0:0:5" ("0:0:05" is equivalent).
Duration can be set on either a Storyboard or an animation. The Automatic literal value results in different behavior for these two cases. For Storyboard, the Automatic duration behavior is equal to the end time of its latest ending child animation, such that no clipping of any of the child animation durations occurs. For animations, the Automatic duration is a time span of 1 second. This short duration is seldom desirable, but this default at least provides you the opportunity to see the animation start during testing, which is better debugging information than never having the animation run.
A Duration of Forever for an animation is part of a deprecated usage, and is seldom used. A Duration of Forever would result in an animation that never advanced from its starting value, no matter what values were provided for From/To, key frames, etc.