Show / Hide Table of Contents

Практическое руководство. Анимация свойства без использования раскадровки

В этом примере показан один из способов применения анимации к свойству без использования Storyboard.

Note

Эта функциональность недоступна в XAML. Дополнительные сведения об анимации свойств в XAML см. в разделе Анимация свойства с помощью раскадровки.

Чтобы применить локальную анимацию к свойству, используйте BeginAnimation метод. Этот метод принимает два параметра: DependencyProperty , который указывает свойство для анимации и анимацию, применяемую к этому свойству.

Пример

В следующем примере показано, как анимировать ширину и цвет фона для Button.

/*

   This sample demonstrates how to apply non-storyboard animations to a property.
   To animate in markup, you must use storyboards.

*/

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;

namespace Microsoft.Samples.Animation.LocalAnimations
{

    // Create the demonstration.
    public class LocalAnimationExample : Page
    {

        public LocalAnimationExample()
        {

            WindowTitle = "Local Animation Example";
            StackPanel myStackPanel = new StackPanel();
            myStackPanel.Margin = new Thickness(20);

            // Create and set the Button.
            Button aButton = new Button();
            aButton.Content = "A Button";

            // Animate the Button's Width.
            DoubleAnimation myDoubleAnimation = new DoubleAnimation();
            myDoubleAnimation.From = 75;
            myDoubleAnimation.To = 300;
            myDoubleAnimation.Duration =  new Duration(TimeSpan.FromSeconds(5));
            myDoubleAnimation.AutoReverse = true;
            myDoubleAnimation.RepeatBehavior = RepeatBehavior.Forever;

            // Apply the animation to the button's Width property.
            aButton.BeginAnimation(Button.WidthProperty, myDoubleAnimation);

            // Create and animate a Brush to set the button's Background.
            SolidColorBrush myBrush = new SolidColorBrush();
            myBrush.Color = Colors.Blue;

            ColorAnimation myColorAnimation = new ColorAnimation();
            myColorAnimation.From = Colors.Blue;
            myColorAnimation.To = Colors.Red;
            myColorAnimation.Duration =  new Duration(TimeSpan.FromMilliseconds(7000));
            myColorAnimation.AutoReverse = true;
            myColorAnimation.RepeatBehavior = RepeatBehavior.Forever;

            // Apply the animation to the brush's Color property.
            myBrush.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation);
            aButton.Background = myBrush;

            // Add the Button to the panel.
            myStackPanel.Children.Add(aButton);
            this.Content = myStackPanel;
        }
    }
}

Широкий набор классов анимации в System.Windows.Media.Animation существует пространство имен для анимации различных типов свойств. Дополнительные сведения об анимации свойств см. в разделе Общие сведения об эффектах анимации. Дополнительные сведения о свойствах зависимостей (тип свойств, приведенных в этих примерах) и их функциях см. в разделе Общие сведения о свойствах зависимостей.

Существуют другие способы анимации без использования Storyboard объектов; Дополнительные сведения см. в разделе Общие сведения о методах анимации свойств.

См. также

  • AnimationTimeline
  • BeginAnimation
  • System.Windows.Media.Animation
  • Storyboard
  • Общие сведения о методах анимации свойств
  • Общие сведения об эффектах анимации
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX