首页 文章

实时WPF图表.Net 4

提问于
浏览
3

我正在研究诊断工具,每隔25毫秒接收一次数据 . 我需要使用lineSeries在我的图表中绘制这些数据 . 我正在使用带有lineSeries的wpf图表,我在xaml中绑定到ObservebleCollection .

问题是我需要集合需要包含至少1600个数据点,然后才开始在前面删除它们 .

我知道25毫秒是一个短暂的关系,然后它来绘制Wpf . 任何人都可以解决我的问题吗?

问候

4 回答

  • 3

    使用WindowsFormsHost控件使用Microsoft Chart for WinForms . MS-Chart可以很好地处理这样的数据速率 . 它在内部使用WritableBitmap方法,因此它既快速又稳定 . 另外,不要忘记将系列类型设置为FastLine以避免减速 .

    我在codeproject上创建了一篇“提示”文章,试图在MS-Chart上突出显示这种类型的高数据量用法 . 您可以将定时器间隔更改为1 ms . 并且看到显示数据没有问题 .

    这篇文章是在http://www.codeproject.com/Tips/1006180/Using-Microsoft-Chart-in-WPF

  • 0

    我有一个.NET应用程序,可以在33ms的间隔内绘制许多测量值 . 我测试了许多图表解决方案来完成这项任务,但我找到的唯一真正可行的选择是Arction LightningChart(http://www.arction.com) . Lightning Chart可以很容易地完成您想要的任务,我认为您可以免费获得基本版本 . 缺点是对DirectX和SlimDX库的依赖 . 您可以从该站点下载的试用版将为您提供有关如何在WPF和Windows窗体中使用此控件的相当好的示例 .

  • 2

    您应该查看SciChart,它可以在1ms处理数据更新 . 它呈现为游戏循环,因此仅在追加新数据且UI线程空闲时绘制 . 在www.scichart.com/demo的一些在线演示展示了性能 .

    披露:这是我自己的组件,所以如果你有任何问题,请提出任何问题!

  • 3

    我建议您使用自定义绘图例程,使用WritebleBitmap而不是形状,并在一个固定区域中一次绘制一条线,而不进行任何滚动 . 当你在你的阴谋区右侧达到1600点时,重新开始 . 也许某些视觉指示器(如垂直线或其他东西)会有助于感知 .

    我认为没有任何图表库可以每25ms更新1600点线 .

相关问题