WPF精灵表动画

3
我正在尝试在wpf中创建一个来自spritesheet的动画精灵。我目前使用的技术是将包含所有动画帧的图像分解为单独的图像,然后仅交换它们。
然而,这会消耗大量内存,我想知道是否有一种方法可以只绘制图像的一部分(指定源矩形),而不是将图像拆分。

2
你应该发布一些代码,这样我们才能帮助你。 - aybe
也许你可以转换为 Path - trinaldi
这是一个链接,描述了我正在使用的当前技术:http://programmingwithkinect.wordpress.com/2013/04/09/sprite-animation-in-wpf-c/ - Damir Bojan
1个回答

2
你绝对可以做到这一点。为了使WPF的内置动画系统支持它,你需要动画化一个依赖属性。在你的情况下,似乎你想使用RectAnimationUsingKeyFramesDiscreteRectKeyFrame类来动画化CroppedBitmapSourceRect属性。
如果你正在使用Image元素显示图像,那么你需要将它的Source属性设置为CroppedBitmap,然后裁剪位图将其Source属性设置为BitmapImage。裁剪位图包装了标准位图并添加了裁剪功能。

其实我刚刚意识到 SourceRect 属性是 Int32Rect 而不是 Rect。这会让它变得有点棘手... - Trevor Elliott
CroppedBitmap很不幸地基本上是不可变的 :/ - Damir Bojan
你说得对。我能够使用 ObjectAnimationUsingKeyFrames 来使属性动画化,但事实证明它忽略了在 BeginInit 和 EndInit 之外的属性更改。 - Trevor Elliott

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接