Storyboard storyboard = new Storyboard();
Storyboard sb = new Storyboard();
//播放按钮,创建关键帧动画 和线性动画
private void Button_Click_2(object sender, RoutedEventArgs e)
{
//DoubleAnimationUsingKeyFrames daanimation = new DoubleAnimationUsingKeyFrames();
//Storyboard.SetTarget(daanimation, ellipse1);
//Storyboard.SetTargetProperty(daanimation, new PropertyPath("(Canvas.Top)"));
//daanimation.Duration = TimeSpan.FromSeconds(40);
//LinearDoubleKeyFrame linearDoubleKeyFrame = new LinearDoubleKeyFrame(200, KeyTime.FromTimeSpan(TimeSpan.FromSeconds(10)));
//daanimation.KeyFrames.Add(linearDoubleKeyFrame);
//daanimation.KeyFrames.Add(new DiscreteDoubleKeyFrame(300, KeyTime.FromTimeSpan(TimeSpan.FromSeconds(15))));
//daanimation.KeyFrames.Add(new SplineDoubleKeyFrame(600, KeyTime.FromTimeSpan(TimeSpan.FromSeconds(20)),
// new KeySpline(new Point(0, 1), new Point(1, 0))));
//Storyboard sb = new Storyboard();
//sb.Children.Add(daanimation);
//sb.Begin(ellipse1, true);
//sb.SetSpeedRatio(ellipse1, 4);
//2.创建关键帧动画
DoubleAnimationUsingKeyFrames doubleAnimationUsingKeyFrames = new DoubleAnimationUsingKeyFrames();
storyboard.Children.Add(doubleAnimationUsingKeyFrames);//把动画添加到故事板
Storyboard.SetTarget(doubleAnimationUsingKeyFrames, ellipse1);//设置Target
Storyboard.SetTargetProperty(doubleAnimationUsingKeyFrames, new PropertyPath(Ellipse.ForceCursorProperty));//设置TargetProperty
doubleAnimationUsingKeyFrames.Duration = new Duration(TimeSpan.FromSeconds(40));
//3.创建关键帧 并添加到KeyFrames 中 这里创建了3个样条关键帧
LinearDoubleKeyFrame linearDoubleKeyFrame=null;
int[] sd=new int[3]{200,300,350};
int[] ti = new int[3] { 20,25,40};
for (int i = 0; i <= 2; i++)
{
linearDoubleKeyFrame = new LinearDoubleKeyFrame(sd[i], KeyTime.FromTimeSpan(TimeSpan.FromSeconds(ti[i])));
}
doubleAnimationUsingKeyFrames.KeyFrames.Add(linearDoubleKeyFrame);
//doubleAnimationUsingKeyFrames.KeyFrames.Add(new DiscreteDoubleKeyFrame(300, KeyTime.FromTimeSpan(TimeSpan.FromSeconds(15))));
//doubleAnimationUsingKeyFrames.KeyFrames.Add(new SplineDoubleKeyFrame(600, KeyTime.FromTimeSpan(TimeSpan.FromSeconds(20)),
// new KeySpline(new Point(0, 1), new Point(1, 0))));
DoubleAnimation daanimation = new DoubleAnimation();
daanimation.From = 0;
daanimation.To = 1;
daanimation.Duration = TimeSpan.FromSeconds(40);
Storyboard.SetTarget(daanimation, myslider);
Storyboard.SetTargetProperty(daanimation, new PropertyPath(Slider.ValueProperty));
sb.Children.Add(daanimation);
sb.Begin(myslider, true);
storyboard.Begin(ellipse1, true);
storyboard.SetSpeedRatio(ellipse1, 4);
sb.SetSpeedRatio(myslider, 4);
}
//控制进度条进度和当前时间
private void myslider_ValueChanged_1(object sender, RoutedPropertyChangedEventArgs<double> e)
{
double? d = sb.GetCurrentProgress(myslider);
this.myslider.Value = Convert.ToDouble(d);
TimeSpan? tm = sb.GetCurrentTime(myslider);
string r = Regex.Replace(tm.ToString(), @"\.\d+$", string.Empty);
this.mytext.Text = r;
//dds();
}