none
如何用代码创建自定义动画 RRS feed

  • 问题

  • 我希望能够用代码创建一个自定义的动画效果,
     比如,在listbox中,显示一个色块,然我点击listbox中的了一个listboxitem是,这个色块就会从他当前的位置移动到我单击的那个item上面去
    就是想要这样的功能。
    谢谢!
    2009年2月21日 14:05

答案

  • 这里有一段关于如何创建动画的代码,而你要的效果恐怕需要你自己去实现了:
    using System;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;

    namespace Petzold.EnlargeButtonWithAnimation
    {
        public class EnlargeButtonWithAnimation : Window
        {
            const double initFontSize = 12;
            const double maxFontSize = 48;
            Button btn;

            [STAThread]
            public static void Main()
            {
                Application app = new Application();
                app.Run(new EnlargeButtonWithAnimation());
            }
            public EnlargeButtonWithAnimation()
            {
                Title = "Enlarge Button with Animation";

                btn = new Button();
                btn.Content = "Expanding Button";
                btn.FontSize = initFontSize;
                btn.HorizontalAlignment =
    HorizontalAlignment.Center;
                btn.VerticalAlignment =
    VerticalAlignment.Center;
                btn.Click += ButtonOnClick;
                Content = btn;
            }
            void ButtonOnClick(object sender,
    RoutedEventArgs args)
            {
                DoubleAnimation anima = new
    DoubleAnimation();
                anima.Duration = new Duration(TimeSpan
    .FromSeconds(2));
                anima.From = initFontSize;
                anima.To = maxFontSize;
                anima.FillBehavior = FillBehavior.Stop;

                btn.BeginAnimation(Button
    .FontSizeProperty, anima);
            }
        }
    }

    2009年2月21日 15:39