Animatable.ApplyAnimationClock Method (DependencyProperty, AnimationClock)
Applies an AnimationClock to the specified DependencyProperty. If the property is already animated, the SnapshotAndReplace handoff behavior is used.
Namespace: System.Windows.Media.Animation
Assembly: PresentationCore (in PresentationCore.dll)
Parameters
- dp
- Type: System.Windows.DependencyProperty
The property to animate.
- clock
- Type: System.Windows.Media.Animation.AnimationClock
The clock with which to animate the specified property. If clock is null, all animations will be removed from the specified property (but not stopped).
Implements
IAnimatable.ApplyAnimationClock(DependencyProperty, AnimationClock)This example shows how to use Clock objects to animate a property.
There are three ways to animate a dependency property:
Create an AnimationTimeline and associate it with that property by using a Storyboard.
Use the object's BeginAnimation method to apply a single AnimationTimeline to a target property.
Create an AnimationClock from an AnimationTimeline and apply it to a property.
Storyboard objects and the BeginAnimation method enable you to animate properties without directly creating and distributing clocks (for examples, see How to: Animate a Property by Using a Storyboard and How to: Animate a Property Without Using a Storyboard); clocks are created and distributed for you automatically.
The following example shows how to create an AnimationClock and apply it to two similar properties.
/* This example shows how to create and apply an AnimationClock. */ using System; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Shapes; using System.Windows.Media.Animation; namespace Microsoft.Samples.Animation.TimingBehaviors { public class AnimationClockExample : Page { ScaleTransform myScaleTransform; public AnimationClockExample() { this.WindowTitle = "Opacity Animation Example"; this.Background = Brushes.White; StackPanel myStackPanel = new StackPanel(); myStackPanel.Margin = new Thickness(20); // Create a button that with a ScaleTransform. // The ScaleTransform will animate when the // button is clicked. Button myButton = new Button(); myButton.Margin = new Thickness(50); myButton.HorizontalAlignment = HorizontalAlignment.Left; myButton.Content = "Click Me"; myScaleTransform = new ScaleTransform(1,1); myButton.RenderTransform = myScaleTransform; // Associate an event handler with the // button's Click event. myButton.Click += new RoutedEventHandler(myButton_Clicked); myStackPanel.Children.Add(myButton); this.Content = myStackPanel; } // Create and apply and animation when the button is clicked. private void myButton_Clicked(object sender, RoutedEventArgs e) { // Create a DoubleAnimation to animate the // ScaleTransform. DoubleAnimation myAnimation = new DoubleAnimation( 1, // "From" value 5, // "To" value new Duration(TimeSpan.FromSeconds(5)) ); myAnimation.AutoReverse = true; // Create a clock the for the animation. AnimationClock myClock = myAnimation.CreateClock(); // Associate the clock the ScaleX and // ScaleY properties of the button's // ScaleTransform. myScaleTransform.ApplyAnimationClock( ScaleTransform.ScaleXProperty, myClock); myScaleTransform.ApplyAnimationClock( ScaleTransform.ScaleYProperty, myClock); } } }
For an example showing how to interactively control a Clock after it starts, see How to: Interactively Control a Clock.
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.