private void Window_Loaded(object sender, RoutedEventArgs e)
{
StringAnimationUsingKeyFrames sAnimation = new StringAnimationUsingKeyFrames();
int full = 100;
double key = 4000 / full;
for (var i = 100; i >= 0; i--)
{
TimeSpan keyTime = TimeSpan.FromMilliseconds((100 - i) * key);
DiscreteStringKeyFrame frame = new DiscreteStringKeyFrame(i.ToString(), KeyTime.FromTimeSpan(keyTime));
sAnimation.KeyFrames.Add(frame);
}
Storyboard.SetTarget(sAnimation, textCount);
Storyboard.SetTargetProperty(sAnimation, new PropertyPath(TextBlock.TextProperty));
Storyboard sb = new Storyboard();
sb.Children.Add(sAnimation);
sb.Completed += sb_Completed;
sb.Begin(this);
}
private void sb_Completed(object sender, EventArgs e)
{
textCount.Text = "50";
}
这是我的代码。
此代码将更改文本块的值100更改为0。
我希望在倒计时结束后更改文本块的值。
但即使倒数(动画)完成,它也不会改变。 (我在故事板完成时尝试更改文本块的值)
我该怎么做?
答案 0 :(得分:1)
您只需在上面的代码中添加一行:
sAnimation.FillBehavior = FillBehavior.Stop;
这样,动画将在故事板完成后停止影响目标控件。