动态矩形图c#wpf

时间:2018-04-16 07:38:54

标签: c# wpf oxyplot

我想创建一个动态显示活动元素为矩形的图。我已经使用OxyPlot.Annotations.RectangleAnnotation实现了第一个版本,我将其添加到myPlotModel.Annotations,您可以在下面的图像中看到它:

  

想要显示的示例   enter image description here

事情是,经过一段时间后,当我更新显示的时间窗口(设置为15秒)时,绘制的矩形量使更新不顺畅。我已经设置了足以覆盖显示窗口的最大绘制元素(即矩形因为过去太远而被删除),但渲染仍然是生涩的。我通过将它们分配到Y轴的相等部分来绘制矩形,这是从顶部得到的第三个:

rowNumber= 3.0
minimumY = maximalY - maximalY / totalElements * rowNumber
maximumY = maximalY - maximalY / totalElements * (rowNumber + 1.0)

隐藏了Y轴。

我的问题: 有没有更聪明的方法来创建这样一个计算量较少的显示器,因此可以更顺畅地更新?我不必坚持使用OxyPlot,这是我发现获得我想要的最简单方法。

感谢您的回答!

1 个答案:

答案 0 :(得分:0)

从技术上讲,你的问题的答案是“是”。

有很多方法可以做到这一点。

你可以在它的模板中有一个带有itemscontrol的垂直itemscontrol。这可能有一个画布,因为它是itemspresenter,你可以将canvas.top和canvas.left绑定到它的内容中的属性。每个模板都变成一个矩形并绑定高度和宽度。 当然,还要对底部的比例和活动标签栏或者你想在那里调用它们做些什么。 除非你使用的是一台绝对古老的机器,否则就会飞。

这是相当多的工作,但写起来可能比搜索一堆替代包并决定哪个是最佳的更快。