我正在寻找动画进度,因此需要1分钟才能完成一个循环。我的代码是:WPF - 根据时间动画进度条
ProgressBar _progressSec = new ProgressBar();
_progressSec.Name = "_progressSec";
_progressSec.Minimum = 0;
_progressSec.Maximum = 60;
_progressSec.Value = DateTime.Now.Second;
this.RegisterName(_progressSec.Name, _progressSec);
NewGrid.Children.Add(_progressSec);
Storyboard newStory = new Storyboard();
DoubleAnimation newAnimation = new DoubleAnimation();
newAnimation.To = 60;
newAnimation.BeginTime = new TimeSpan(DateTime.Now.Second);
newAnimation.RepeatBehavior = RepeatBehavior.Forever;
newAnimation.Duration = new Duration(TimeSpan.FromMinutes(1));
newStory.Children.Add(newAnimation);
Storyboard.SetTarget(newAnimation, _progressSec);
Storyboard.SetTargetProperty(newAnimation, new PropertyPath(ProgressBar.ValueProperty));
newStory.Begin();
这个酒吧恰恰1分钟完成一个循环,这不正是我想要的。所以,如果我在40秒后开始,则需要一分钟才能达到60秒。
我想要做的是从当前的秒数值开始,每秒增加一次,当它达到60秒时,再次开始,所以如果它在40秒开始,则需要20秒达到一分钟。 当它达到一分钟时,我希望它再次开始(在0)。当然,我可以刚刚说我正在开发一个时钟/计时器,但是我认为我最好解释当我运行代码时发生了什么。
当我将一个From值添加到newAnimation时,它总是从该值开始,而不是在BeginTime值。
任何想法?
谢谢。
您设置'BeginTime'的方式是错误的。它规定了将来动画在什么时候开始播放。而'新TimeSpan(DateTime.Now.Second)'没有任何意义。 – svick 2011-04-25 16:06:35