WPF编程,通过Double Animation同时动态缩放和旋转控件的一种方法。

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF编程,通过Double Animation同时动态缩放和旋转控件的一种方法。相关的知识,希望对你有一定的参考价值。

原文:WPF编程,通过Double Animation同时动态缩放和旋转控件的一种方法。

版权声明:我不生产代码,我只是代码的搬运工。 https://blog.csdn.net/qq_43307934/article/details/87260287

?1、 可直接调用。需要将控件的名称,缩放的位数,时间等参数传进去。?

        /// <summary>
        /// 同时旋转和缩放的动画
        /// </summary>
        /// <param name="element"></param>
        /// <param name="Sizefrom"></param>
        /// <param name="Sizeto"></param>
        /// <param name="anglefrom"></param>
        /// <param name="angleto"></param>
        /// <param name="time"></param>
        /// <param name="Power"></param>
        /// <param name="completed"></param>
        public void ScaleEasingAnimationShow(UIElement element,double Sizefrom,double Sizeto,int anglefrom, int angleto ,TimeSpan time,int Power,EventHandler completed)
        {

            RotateTransform angle = new RotateTransform();  //旋转
            ScaleTransform scale = new ScaleTransform();   //缩放

            TransformGroup group = new TransformGroup();
            group.Children.Add(scale);
            group.Children.Add(angle);

            element.RenderTransform = group;
            //定义圆心位置
            //元素开始的位置是从new Point(0,0)到new Point(1,1),
            //左上角为(0,0)、右下角为(1,1),控件大小范围为(1,0) 1为控件本身大小,0 为控件缩放完,不显示。
            element.RenderTransformOrigin = new System.Windows.Point(0.5, 0.5);   
            //载入动画,淡入淡出等。
            EasingFunctionBase easeFunction = new PowerEase()
            {
                EasingMode = EasingMode.EaseInOut,
                Power = Power
            };
            //缩放动画
            DoubleAnimation scaleAnimation = new DoubleAnimation()
            {
                From = Sizefrom,                                   //起始值
                To = Sizeto,                                     //结束值
                EasingFunction = easeFunction,                    //缓动函数
                Duration = time,  //动画播放时间


            };
            //旋转动画
            DoubleAnimation angleAnimation = new DoubleAnimation()
            {
                From = anglefrom,                                   //起始值
                To = angleto,                                     //结束值
                EasingFunction = easeFunction,              //缓动函数
                FillBehavior = FillBehavior.HoldEnd,
                Duration = time,  //动画播放时间

            };

            angleAnimation.Completed += completed;
            //scaleAnimation.Completed += new EventHandler(scaleAnimation_Completed);
            //  AnimationClock clock = scaleAnimation.CreateClock();
            scale.BeginAnimation(ScaleTransform.ScaleXProperty, scaleAnimation);
            scale.BeginAnimation(ScaleTransform.ScaleYProperty, scaleAnimation);
            angle.BeginAnimation(RotateTransform.AngleProperty, angleAnimation);
            
        }

?

以上是关于WPF编程,通过Double Animation同时动态缩放和旋转控件的一种方法。的主要内容,如果未能解决你的问题,请参考以下文章

WPF编程,通过Double Animation动态更改控件属性的一种方法。

WPF编程,通过Double Animation同时动态缩放和旋转控件的一种方法。

2021-09-25 WPF上位机 42-Storyboard

参数类型“AnimationController?”不能分配给参数类型'Animation<double>'

动画基础,3种动画方式

安卓 编程如何为一个图片加上透明度和平移两个动画