The time Line (TimeLine) represents the time period. It provides properties that allow you to control the length of the time period, the start time, the number of repetitions, the speed of progress in the time period, and so on. The following types of timeline are built into WPF:
- AnimationTimeline ?: described earlier, primarily for the transition of attributes, this is the most common animation.
- Mediatimeline: The timeline used to control the playback of media files.
- Paralleltimeline:paralleltimeline? is a timeline for grouping other timelines that you can use to implement more complex animations.
- Storyboard ?: a special? Paralleltimeline, which provides object and property target information for the timeline it contains. It is often used in XAML, followed by a special introduction.
- Timelinegroup: Can I include other? Timeline? The object? An abstract class of Timeline objects.
?
Common Properties:
- Duration: Length of animation play time
- RepeatBehavior: Repeat behavior (number of repetitions)
- Fillbehavior: Behavior After the end of the animation (to keep the end state of the animation or revert to its original state)
- AutoReverse: Play the animation repeatedly in reverse order
- SpeedRatio: Animation playback rate (for accelerated or slow playback)
- BeginTime: Start time of animation playback
?
Time Line control:
So far, though, we can create and execute animations, but only through UIElement. BeginAnimation performs the start animation and cannot interactively control the animation. In WPF, you also provide a series of control actions on the timeline, such as Start, stop, pause, and so on. They are performed by the Controller property of the clock object. Here's a simple example:
???? var widthanimation = newdoubleanimation()
???? {
???????? From = 0,
???????? to = 320,
???????? Duration = TimeSpan. FromSeconds (5),
????};
???? var clock = Widthanimation.createclock ();
???? button. ApplyAnimationClock (widthproperty, clock);
???? awaitTask. Delay (3000);
???? Clock. Controller.pause ();
As you can see from this code, the general steps to control the timeline are as follows:
- Clock object creation by Createclock function
- Through UIElement. The ApplyAnimationClock function enables animation that supports clock control
- Use clock. Controller's method control animation
A more detailed example can be see the MSDN documentation: interactively control the clock
In addition to providing an interactive method in the controller, the clock object also provides a series of properties and events to facilitate our access to the state, common are:
- Currentprogress???? Current progress
- CurrentState???? Current status
- CurrentTime???? Current playback time
- ispaused???? Is in a paused state
- Naturalduration???? Animation duration
A series of events are also provided to proactively notify the state of changes, and commonly used events are:
- Completed: Notification at the end of the animation
- currentglobalspeedinvalidated notification when the playback rate changes,
- Notification of currentstateinvalidated status changes
- CurrentTimeInvalidated notification when the playback time changes
- Removerequested notification when animation is removed
These events are also available in the Timeline object, so that you can change the state without using the clock object. If you want more revenue to understand how the timekeeping system works, you can look at the animation and timing System overview article.
In addition, some special timeline objects, such as the storyboard itself, encapsulate the control-related content of the animation and can control the animation directly. About storyboard need to introduce more content, and then write a separate article introduction.
?
Resources:
- Overview of timing behavior
- Overview of Timing Events
- Timeline class
- Clock class
- Synchronous positioning clock
Animation in WPF--(c) timeline (TimeLine)