WPF 如何:在使用演示图板对属性进行动画处理后设置该属性?添加动画后属性不能锁死不能改变?
2013-11-17 21:12
811 查看
如果您在使用WPF/Silverlight进行相关动画开发中使用了Storyboard,并对关联属性进行了动画修改,那么您是否有注意到这些关联属性常常无法再通过直接赋值的形式去修改,尽管它的值已经被更改,但却始终无法在界面上得以体现。
在WPF/Silverlight中使用Storyboard修改过关联属性后,这些关联属性将被锁定,外界是无法通过直接赋值的形式对其进行修改的。难道束手无策了?其实msdn很早就给我们提供了3个解决方案,原文地址:
http://msdn.microsoft.com/zh-cn/library/aa970493.aspx
解析:
方法一:将动画的 FillBehavior 属性设置为 Stop(通过将 FillBehavior 设置为 Stop,即通知动画在到达其活动期末尾后停止影响其目标属性。)
只有在动画到达其活动期末尾时才有效。即动画stop后
方法二:移除整个演示图板
通过使用 RemoveStoryboard 触发器或 Storyboard.Remove 方法,通知演示图板动画停止影响其目标属性。 此方法与设置 FillBehavior属性的不同之处在于:您可以在任何时候移除演示图板,而 FillBehavior 属性只有在动画到达其活动期末尾时才有效。
方法三:从单个属性移除动画
禁止动画影响属性的另一种方法是使用正在进行动画处理的对象的 BeginAnimation(DependencyProperty, AnimationTimeline) 方法。 将正进行动画处理的属性指定为第一个参数,将 null 指定为第二个参数。
移除后还可以继续设置回来
在WPF/Silverlight中使用Storyboard修改过关联属性后,这些关联属性将被锁定,外界是无法通过直接赋值的形式对其进行修改的。难道束手无策了?其实msdn很早就给我们提供了3个解决方案,原文地址:
http://msdn.microsoft.com/zh-cn/library/aa970493.aspx
解析:
方法一:将动画的 FillBehavior 属性设置为 Stop(通过将 FillBehavior 设置为 Stop,即通知动画在到达其活动期末尾后停止影响其目标属性。)
只有在动画到达其活动期末尾时才有效。即动画stop后
Button2BackgroundBrush.Color = Colors.Blue;
方法二:移除整个演示图板
通过使用 RemoveStoryboard 触发器或 Storyboard.Remove 方法,通知演示图板动画停止影响其目标属性。 此方法与设置 FillBehavior属性的不同之处在于:您可以在任何时候移除演示图板,而 FillBehavior 属性只有在动画到达其活动期末尾时才有效。
MyStoryboard.Remove(Button3); Button3BackgroundBrush.Color = Colors.Blue;
方法三:从单个属性移除动画
禁止动画影响属性的另一种方法是使用正在进行动画处理的对象的 BeginAnimation(DependencyProperty, AnimationTimeline) 方法。 将正进行动画处理的属性指定为第一个参数,将 null 指定为第二个参数。
Button4BackgroundBrush.BeginAnimation(SolidColorBrush.ColorProperty, null); Button4BackgroundBrush.Color = Colors.Blue;
移除后还可以继续设置回来
Button4BackgroundBrush.BeginAnimation(SolidColorBrush.ColorProperty, 动画);
另外还有介绍了另外的两种方法,可以参考。
http://www.cnblogs.com/alamiye010/archive/2009/08/26/1554539.html
相关文章推荐
- WPF学习心得(1):WPF进行动画后不能改变相对应的属性问题的解决
- 关于SubSonic3.0插件使用Json反序列化获得的实体进行更新操作时,只能执行添加而不能执行修改(编辑)操作的处理
- 图形的绘制,如何使用自定义画笔(颜色,线宽,线形)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,
- Android中的基础-----如何使用JAVA动态的添加并设置组件属性
- 关于SubSonic3.0插件使用Json反序列化获得的实体进行更新操作时,只能执行添加而不能执行修改(编辑)操作的处理
- iOS 使用 Runtime Attribute 为 IB 控件添加不能直接设置的属性
- wpf中如何对 FrameworkElement 的大小进行动画处理
- wpf中如何对 FrameworkElement 的大小进行动画处理
- 对属性进行动画处理后设置该属性
- c++builder上使用TIDTCPServer和TIDTCPClient进行简单通信,如何通过代码动态设置TIDTCPServer的Bindings属性。
- 写一个方法进行各种属性的更新,而不要每个界面设置改变都改变一个属性。就是点击应用或确定按钮时调用这个更新属性的方法,遍历所有(控制对象属性的)界面控件的状态(值),进行属性修改和刷新。
- Ext Ajax:如何调用Ext.Ajax.request方法和使用Java Servlet进行处理 .
- [WPF]如何实现设置UserControl 弹出窗口的Owner属性功能
- white-space 属性设置如何处理元素内的空白
- 看看如何解决“SQL Server只能使用Windows身份登录,不能使用sa等Sql server身份进行登录”的问题
- 解决Keep-Alive 和 Close 不能使用此属性设置
- GStreamer使用playbin,如何给动态生成的source组件设置属性?
- 如何对Visibility属性进行动画(XMAL /CS)
- ObjectAnimator如何设置PivotX(属性动画如何设置起始点)
- WPF中使用cs代码设置附加属性的方式