Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在wpf中平滑地转换控件?_C#_Wpf - Fatal编程技术网

C# 如何在wpf中平滑地转换控件?

C# 如何在wpf中平滑地转换控件?,c#,wpf,C#,Wpf,我使用以下代码在wpf中转换控件: TranslateTransform trans = new TranslateTransform(); Studio.RenderTransform = trans; DoubleAnimation anim1 = new DoubleAnimation(0, final_point-initial_point, TimeSpan.FromSeconds(2)); trans.BeginAnimation(TranslateTransform.XProper

我使用以下代码在wpf中转换控件:

TranslateTransform trans = new TranslateTransform();
Studio.RenderTransform = trans;
DoubleAnimation anim1 = new DoubleAnimation(0, final_point-initial_point, TimeSpan.FromSeconds(2));
trans.BeginAnimation(TranslateTransform.XProperty, anim1);

然而,这只是线性平移,它始终具有相同的速度。我希望它开始缓慢,然后加速,最后在到达目的地之前再次减速,就像贝塞尔曲线效果一样。如何做到这一点?

您必须使用一个
双动画,使用关键帧
样条双关键帧
相结合,如本文所述:


设置DoubleAnimation的
EasingFunction
属性,例如,将
EasingMode
设置为
EaseInOut

anim1.EasingFunction = new CubicEase { EasingMode = EasingMode.EaseInOut };

我不知道EasingFunction,很好!太好了,正是我需要的!