我已经创建了一个具有Telerik RadCartesianChart的自定义控件。此自定义控件根据用户下拉选择创建任意数量的图表。屏幕上的图表数量可以变化,但所有图表都具有相同的x轴。我在自定义控件上添加了图表跟踪球线,它在鼠标移动的一个图表上工作得很好。我想在窗口上的所有其他图表上添加相同的轨迹球线,以便在一个轨迹球上的移动将反映其他图表上的相同位置。如何以编程方式实现此行为?
发布于 2015-10-16 14:44:31
我不知道您是否可以在不向每个图表添加ChartTrackBallController的情况下完成您正在尝试的操作。
我的建议是将多个系列添加到一个图表中,共享X轴,但根据需要具有多个Y轴。这样,ChartTrackBallController将在图表中的所有序列上选取一个点。
// Trackball
ChartTrackballController ctbcMain = new ChartTrackballController();
ctbcMain.TextNeeded += ctbcMain_TextNeeded;
ctbcMain.InnerPointSize = new SizeF(0, 0);
ctbcMain.OuterPointsSize = new SizeF(0, 0);
rcvUPM.Controllers.Add(ctbcMain);
rcvUPM.ShowTrackBall = true;在上面的代码片段中,rcvUPM是一个包含您想要显示的所有数据序列的radchartview,而ctbcMain_TextNeeded用于定制轨迹球悬停显示的内容。
似乎在默认情况下,悬停内容将包含每个系列的多个点,即使在InnerPointSize和OuterPointsSize在Telerik support的建议下设置为零之后,DataPointInfo对象的集合上也需要一个LINQ FirstOrDefault,以将其限制为每个系列一个点。
https://stackoverflow.com/questions/29221399
复制相似问题