WPF中的高性能绘图控件

时间:2011-08-25 04:30:11

标签: c# .net wpf controls

我正在做一些我需要开发控件的工作,它应该是一个简单的图形,显示几个点和两个边。

我的问题是我需要显示高达16k点,更新率为30 Hz。有没有人做过类似的事情?,有什么建议吗?。

例如,是继承自FrameworkElement还是Control(在本例中为ItemsControl)。如果控件继承自FrameworkElememt,那么在OnRender方法中绘制点可能会有更好的性能,但我会错过继承自Control的Templating功能。

或者是否存在可以执行此操作的另一个控件?

提前感谢您的时间。

2 个答案:

答案 0 :(得分:3)

我最终使用了InteropBitmap,它是WPF最新的位图渲染类。

它允许您映射要绘制的图像(在内存中),然后将其作为图像重新绘制。这很完美,因为我需要在屏幕上绘制点。

我获得了很好的表现(20k点差不多50Hz),我还使用PLINQ来更新内存中的点数。

查看this文章了解更多详情...

答案 1 :(得分:2)

试试并阅读ZoomableCanvas。我相信它可以解决你的问题。您可以将所有点渲染为ZoomableCanvas内的小矩形/椭圆。