我正在将一些WPF实验重写为Silverlight。在WPF中,我喜欢直接使用DrawingVisuals与画布进行手动添加和删除,这样可以在大量元素时获得良好的性能表现。但令我惊讶的是,在Silverlight中没有DrawingVisuals。
那么,在屏幕上绘制许多具有独立动画能力的对象的最有效方法是什么(它们不需要响应鼠标事件)?至少在WPF中,使用形状会带来很大的开销。
我正在将一些WPF实验重写为Silverlight。在WPF中,我喜欢直接使用DrawingVisuals与画布进行手动添加和删除,这样可以在大量元素时获得良好的性能表现。但令我惊讶的是,在Silverlight中没有DrawingVisuals。
那么,在屏幕上绘制许多具有独立动画能力的对象的最有效方法是什么(它们不需要响应鼠标事件)?至少在WPF中,使用形状会带来很大的开销。
请查看与WriteableBitmap相关的一些工作,例如Bill Reiss的文章 "使用Silverlight的WriteableBitmap进行Blitting和Blending "和Rene Schulte的文章 1,2和3,这些文章都是关于扩展WriteableBitmap的。
Jeff Prosise还有一个WriteableBitmap 样例。
这种方法可能比您所寻找的更低级,但检查一下还是值得的。
形状是在Silverlight中可以独立动画化的最基本的项目。
几何图形更为原始,但无法通过动画来处理。即使您使用自己的代码对它们进行动画处理,我也不确定是否会更快。
当基本的SL插件只需下载5MB时,WPF中缺少的部分并不令人惊讶。还值得注意的是,Silverlight的目标是Mac和Windows。