且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用WPF动画编程的几点注意事项[转]

更新时间:2022-09-13 14:10:24

1.       FrameworkElement.Triggers中启动动画的几点备注:

·         Triggers集合中只支持EventTrigger,使用其他类型的Trigger将会加载失败。

·         EventTrigger.SourceName指定的元素必须在当前的EventTrigger所应用的元素的逻辑子树内。如果EventTrigger应用于自身元素,则不需要制定SourceName属性。

·         当对一个依赖属性应用了动画后,再对该属性赋值需要特别注意Timeline.FillBehavior的值。如果Timeline.FillBehavior==HoldEnd,那么在代码中对该属性进行赋值是没有效果的。该属性将会一直持有动画赋予的值。原因是动画赋值有较高的优先级。可以设置FillBehaviorStop或者在该属性上清除动画来解决此问题:

     btn.BeginAnimation(Button.OpacityProperty, null);

 

2.       关于启动动画的两种方式的几点备注,启动动画有两种方式:

·         一种是使用UIElement.BeginAnimation方法。该方法会启动参数所制定的动画来animate自身的某个依赖属性。非常简单,但是该方法只能启动一个动画。

·         另一种是使用Storyboard.Begin方法。该方法可以一次启动多个动画,只要这些动画包含在Storyboard里面。而且其中包含每个Timeline都需要用Storyboard.SetTargetNameStoryboard.SetTargetProperty来制定目标元素和目标属性。需要特别注意的一个缺点是:Storyboard中包含的所有TimelineTarget都必须是FrameworkElement或者FrameworkContentElement的派生类的对象。否则该动画不会有任何效果。这是由于PropertyPath类造成的,因为在SetTargetProperty的时候需要提供一个PropertyPath的一个构造,而PropertyPath被限制与引用从FrameworkElement或者FrameworkContentElement的路径,这是PropertyPath用在Target mode的限制。

 

from:http://blog.csdn.net/gentle_wolf/article/details/6386661 
 

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122 做人要厚道,转载请注明出处!

















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sunshine-anycall/archive/2012/04/17/2453622.html,如需转载请自行联系原作者