我正在做一些我需要开发控件的工作,它应该是一个简单的图形,显示几个点和两个边。
我的问题是我需要显示高达16k点,更新率为30 Hz。有没有人做过类似的事情?,有什么建议吗?。
例如,是继承自FrameworkElement还是Control(在本例中为ItemsControl)。如果控件继承自FrameworkElememt,那么在OnRender方法中绘制点可能会有更好的性能,但我会错过继承自Control的Templating功能。
或者是否存在可以执行此操作的另一个控件?
提前感谢您的时间。
答案 0 :(得分:3)
我最终使用了InteropBitmap,它是WPF最新的位图渲染类。
它允许您映射要绘制的图像(在内存中),然后将其作为图像重新绘制。这很完美,因为我需要在屏幕上绘制点。
我获得了很好的表现(20k点差不多50Hz),我还使用PLINQ来更新内存中的点数。
查看this文章了解更多详情...
答案 1 :(得分:2)
试试并阅读ZoomableCanvas。我相信它可以解决你的问题。您可以将所有点渲染为ZoomableCanvas内的小矩形/椭圆。