/// <summary>
/// 缩放动画
/// </summary>
/// <param name="element">控件名</param>
/// <param name="RenderX">变换起点X坐标</param>
/// <param name="RenderY">变换起点Y坐标</param>
/// <param name="Sizefrom">开始大小</param>
/// <param name="Sizeto">结束大小</param>
/// <param name="power">过渡强度</param>
/// <param name="time">持续时间,例如3秒: TimeSpan(0,0,3) </param>
public void ScaleEasingAnimationShow(UIElement element, double RenderX, double RenderY, double Sizefrom, double Sizeto, int power, TimeSpan time)
{
ScaleTransform scale = new ScaleTransform(); //旋转
element.RenderTransform = scale;
//定义圆心位置
element.RenderTransformOrigin = new System.Windows.Point(RenderX, RenderY);
//定义过渡动画,power为过度的强度
EasingFunctionBase easeFunction = new PowerEase()
{
EasingMode = EasingMode.EaseInOut,
Power = power
};
DoubleAnimation scaleAnimation = new DoubleAnimation()
{
From = Sizefrom, //起始值
To = Sizeto, //结束值
FillBehavior = FillBehavior.HoldEnd,
Duration = time, //动画播放时间
EasingFunction = easeFunction, //缓动函数
};
scale.BeginAnimation(ScaleTransform.ScaleXProperty, scaleAnimation);
scale.BeginAnimation(ScaleTransform.ScaleYProperty, scaleAnimation);
}
如何使用?
ScaleEasingAnimationShow(控件名, 0.5, 0.5, 1, 0, 5, new TimeSpan(0, 0, 0, 0, 250));