C# WPF中的高性能绘图控制

C# WPF中的高性能绘图控制,c#,.net,wpf,controls,C#,.net,Wpf,Controls,我正在做一些工作,我需要开发一个控件,它应该是一个简单的图形,显示几个点和两条边 我的问题是,我需要显示高达16k点,更新率为30Hz。有人做过类似的事情吗?有什么建议吗 例如,是从FrameworkElement继承还是从控件继承(本例中为ItemsControl)。如果控件继承自FrameworkElememt,那么在OnRender方法中绘制点可能会有更好的性能,但我会错过继承自控件的模板功能 或者是否存在另一个控件可以执行此操作 提前感谢您抽出时间。请尝试阅读。我相信它能解决你的问题。您

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

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

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

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


提前感谢您抽出时间。

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

我最终使用InteropBitmap,它是WPF中最致命的位图渲染类

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

我获得了很好的性能(对于20k点几乎50赫兹),我还使用PLINQ更新内存中的点


查看文章了解更多详细信息…

您真的需要每秒更新16.000次poihts吗?或者大多数都没有改变?每次更新时,所有点都可能改变。我还需要提供缩放,所以这就是为什么要处理的点的数量。首先感谢你自己-你真的需要模板吗?如果你为自己的需要开发控制,我认为答案应该是-不!你的图表有多稀疏?它是连通的吗?连接组件的平均大小是多少?嗯,您可以使用DirectX并将DirectX表面投影到WOF控件上(完全支持)。对于DirectX,渲染包含30000个点的顶点数组甚至不值得一提。现代游戏每秒渲染数亿个完整的三角形。16000点是中档特效;)你试过控制吗,因为我最需要的是性能。谢谢,不久前。他也有演示,你可以编译并看到他们的工作。嗨,链接显示403错误。你能提供更多信息或其他链接吗?我在一个项目中工作,我也有同样的问题。