Clocks and Control
When launching an animation from code, we've had only a limited
amount of control over the progress of the animation. We may have
defined the sequence and structure of events we require in great detail,
but then we just kicked them off by calling BeginAnimation
, leaving the animation system
to deal with them. To gain more control, we have two options. Either we
can use the control features offered by storyboards, or we can work with
a timeline's clock.
Controlling Animations with Storyboards
We've already seen how to exercise a little control by using event triggers. These offer actions to pause, stop, or resume an animation, or even to seek to a particular location within an animation. Example 16-7 showed how to use these. One limitation with triggers is that they always run the same storyboard. Sometimes it can be useful to write code that decides which storyboard to use at runtime. This means controlling the storyboards from code.
Trigger actions rely on control features offered by storyboards,
so if you wish to control animations from code rather than with
triggers, you can use these same services. The Storyboard
class provides a set of methods
for controlling the execution of the animations it contains: Begin
, Pause
, Remove
, Resume
, Seek
, SeekAlignedToLastTick
, SetSpeedRatio
, SkipToFill
, and Stop
.
The majority of these correspond directly to the trigger action
types listed in Table 16-2,
with two exceptions. There is no counterpart to the SoundPlayerAction
, because ...
Get Programming WPF, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.