当前位置:  开发笔记 > 编程语言 > 正文

如何在C#/ WPF中停止动画?

如何解决《如何在C#/WPF中停止动画?》经验,为你挑选了6个好方法。

我有这样的事情:

barProgress.BeginAnimation(RangeBase.ValueProperty, new DoubleAnimation(
    barProgress.Value, dNextProgressValue,
    new Duration(TimeSpan.FromSeconds(dDuration)));

现在,你将如何停止那个动画DoubleAnimation?我想这样做的原因是因为我想开始新的动画(这似乎有用,但很难说)并最终停止上一个动画......



1> TheSmurf..:

要停止它,请BeginAnimation再次调用第二个参数设置为null.


小心.如果指定HandoffBehavior.Compose,则不起作用.有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms590757%28v=VS.90%29.aspx.注意动画参数的doco.
第二次调用BeginAnimation似乎并没有阻止第一个动画的Animation“ clock”继续进行。在指定的时间之后,动画将引发“已完成”事件。调用BeginAnimation时,不是直接引发Is,而是当Animation *将要完成*时才引发。

2> user3837..:

使用故事板控制动画时,请确保将第二个参数设置为true,以便将动画设置为可控制:

public void Begin(
    FrameworkContentElement containingObject,
    **bool isControllable**
)


加上一个给你,我想知道为什么我的动画没有回应"停止"!
是的,是的,是的,这样做了.缺少"真实"让我疯了:)

3> BruceLH..:

有两种方法可以停止BeginAnimation.第一个是再次调用BeginAnimation,第二个参数设置为null.这将消除对财产的所有动画和还原值回其基本价值.

根据您使用该值的方式,这可能不是您想要的行为.第二种方法是将动画BeginTime设置为null,然后用它调用BeginAnimation.这将删除该特定动画并将值保留在其当前位置.

DoubleAnimation myAnimation = new Animation();
// Initialize animation
...

// To start
element.BeginAnimation(Property, myAnimation);

// To stop and keep the current value of the animated property
myAnimation.BeginTime = null;
element.BeginAnimation(Property, myAnimation);



4> Nick..:

如果希望基值再次成为有效值,则必须停止动画影响属性.故事板动画有三种方法可以做到这一点:

将动画的FillBehavior属性设置为Stop

删除整个故事板

从单个属性中删除动画

来自MSDN

如何:使用故事板为其设置动画后设置属性



5> Junior M..:

在我的情况下,我不得不使用两个命令,我的xaml有一个触发触发器的按钮,它的触发器触发故事板动画.

我用一个按钮停止动画,后面跟着这个代码:

MyBeginStoryboard.Storyboard.Begin(this, true);
MyBeginStoryboard.Storyboard.Stop(this);

我不喜欢它,但它确实在这里工作.试试看!


记得调用Storyboard.Remove(this),否则你可能会泄漏内存,因为你的FrameworkElement会保留对storyboard的引用.我刚刚在我的代码中找到了一个实例,只需停止并替换动画,就会在运行几周后生成4000多个动画.

6> Fawaz..:

       
       .........
       


       


Windows Presentation Foundation(WPF)项目不支持StopStoryBoard
推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有