Partager via


Comment : obtenir la valeur non animée d'une propriété animée

Mise à jour : novembre 2007

Pour obtenir la valeur non animée de la propriété animée d'un objet, vous devez utiliser la méthode GetAnimationBaseValue de l'objet. UIElement, Animatable et ContentElement ont tous deux leur propre implémentation.

Exemple

Dans l'exemple suivant, les valeurs non animées de propriétés animées sont récupérées et affichées.

/*

   This sample shows how to use the 
   Animatable.GetAnimationBaseValue and 
   UIElement.GetAnimationBaseValue methods
   to get the non-animated value of an
   animated Animatable or UIElement.

*/

using System;
using System.Windows;
using System.Windows.Navigation;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Controls;
using System.Windows.Input;

namespace Microsoft.Samples.Animation.TimingBehaviors
{


    public class GetAnimationBaseValueExample : Page {


        private RotateTransform animatedRotateTransform;
        public GetAnimationBaseValueExample()
        {

            WindowTitle = "GetAnimationBaseValue Example";
            StackPanel myPanel = new StackPanel();
            myPanel.Margin = new Thickness(20.0);    

            // Create a button.
            Button animatedButton = new Button();
            animatedButton.Content = "Click Me";
            animatedButton.Width = 100;
            animatedButton.Margin = new Thickness(100);

            // Create and animate a RotateTransform and
            // apply it to the button's RenderTransform
            // property.
            animatedRotateTransform = new RotateTransform();
            animatedRotateTransform.Angle = 45;
            DoubleAnimation angleAnimation = 
                new DoubleAnimation(0,360, TimeSpan.FromSeconds(5));
            angleAnimation.RepeatBehavior = RepeatBehavior.Forever;
            animatedRotateTransform.BeginAnimation(
                RotateTransform.AngleProperty, angleAnimation);           
            animatedButton.RenderTransform = animatedRotateTransform;
            animatedButton.RenderTransformOrigin = new Point(0.5,0.5);
            // Animate the button's width.
            DoubleAnimation widthAnimation = 
                new DoubleAnimation(120, 300, TimeSpan.FromSeconds(5));
            widthAnimation.RepeatBehavior = RepeatBehavior.Forever;
            widthAnimation.AutoReverse = true;
            animatedButton.BeginAnimation(Button.WidthProperty, widthAnimation);

            // Handle button clicks.
            animatedButton.Click += new RoutedEventHandler(animatedButton_Clicked);           

            // Add the button to the panel.
            myPanel.Children.Add(animatedButton);
            this.Content = myPanel;
        }

        // Display the base value for Button.Width and RotateTransform.Angle.
        private void animatedButton_Clicked(object sender, RoutedEventArgs e)
        {
            Button animatedButton = (Button)sender;
            MessageBox.Show("Button width base value: " + 
                animatedButton.GetAnimationBaseValue(Button.WidthProperty)
                + "\nRotateTransform base value: " +
                animatedRotateTransform.GetAnimationBaseValue(RotateTransform.AngleProperty));

        }

    }

}

Voir aussi

Concepts

Vue d'ensemble de l'animation

Référence

GetAnimationBaseValue

GetAnimationBaseValue

GetAnimationBaseValue