我正在尝试在图像上实现具有阴影效果的自定义过渡动画。 我正在使用一个系统来指定缓动Bézier函数graphicaly并在一个名为Spline的类中处理所有样条数据。
我正在动画时间属性发送到Spline的静态方法来计算Bézier数据以进行缓动。 然后我得到我发送到着色器效果的Time属性的计算值 但是我不能在这个转换中使用beginAnimation,因为播放动画的类是非UI的,并且已经从一个抽象类继承。
如果我想使用beginAnimation,我必须使依赖对象继承的抽象类使用依赖属性作为BeginAnimation的参数但是我得到了这个错误
this.BeginAnimation(TimeProperty,anim);
'MyClass'不包含BeginAnimation的定义,也没有扩展方法可以找到接受类型为'MyClass'的frist参数的BeginAnimation(你是否缺少using指令或汇编引用)
所有这些依赖/动画系统都不符合我的需求,因为我没有直接使用ui而且我现在完全被卡住了
有什么想法吗?
(我使用了dispatcherTimer来做这个技巧,但是当动画结束时,我可以在半秒钟内看到我的应用程序的背景颜色,然后我的第二个图像终于显示但我不想要这种行为,因为它会被推销......)
答案 0 :(得分:0)
使用KeyFrame动画。您可以向其添加单个帧。例如,您可以隐藏每个第二个关键帧的内容。
答案 1 :(得分:0)
我最后使用Storyboard来实现这一点,在我的抽象类上使用Dependency对象继承。
即使在非UI对象上使用Sotryboard / dependencyProperty系统并不好(在我看来),它仍然有用。
我有一个故事板,可以在MyClass中将名为Time的DependencyProperty从0设置为1。 在TimeChangedCallback中,我根据自定义样条线缓动函数计算新的时间值,然后将其影响到我的着色器的Progress属性。
无论如何,感谢您的关注。