XWT内置了Trident作为动画引擎。
Trident 是一个由 Substance look-and-feel 编写的在应用中驱动动画的动画层的新一代解决方案。底层的动画引擎已经开发和生产应用超过两年了,但是UI API非常难以使用。Trident 的主要目标是保留原项目的强大的功能,性能和现存动画引擎的表现力,同时提供一套简单的API用于使用。 Trident实现原理很像Flash,提供了时间轴(Timeline)概念,
在XWT中很容易使用Trident,目前提供了一下几种属性动画(Property Anmimation)
| 对应的类 | 属性 | 组件 |
| ColorAnimation | background,foreground | Control |
| IntAnmiation | alpha | Shell |
| PointAnimation | location | Control |
| SizeAnmiation | size | Control |
| RectangleAnimation | bounds | Control |
ColorAnmiation
支持颜色的动态变化,用法:
通过targetName指定目标组件的名称,targetProperty指定目标组件的属性,duration指定持续时间(时:分:秒),from指起始颜色,to目标颜色,通过RGB值变换达到效果。
完整的例子:
>
这里是通过XWT触发器完成颜色变换的,触发器调用BeginStoryboard,然后将动画任务属性传达给目标组件和属性。这和WPF的设计思想是一脉相承的。
点击start按钮后,标签的背景色会由red变成blue。
你也可以扩展这个程序,加上停止、暂停和恢复功能。
往.xwt文件拖入几个按钮,然后添加触发器
>
IntAnimation
可以用于窗口的透明度变换,从完全透明到不透明。
/>
PointAnimation
支持组件大小的变化,用法和ColorAnmiation差不多的:
/>
SizeAnmiation
与PointAnmiation类似
RectangleAnmiation
改变窗口的坐标和大小
/>
你可以可以将多种动画效果一起使用:一边改变大小,一边更改坐标。
>
XWT的动画设置和WPF步骤非常相似。
以上这就是XWT支持的最基本动画效果,虽然功能不是非常强大,但是用起来也不怎么复杂,感兴趣可以研究一下。
参考资料:System.Windows.Media.Animation Namespace