我创建了一个具有Telerik RadCartesianChart的自定义控件。此自定义控件根据用户下拉选择创建任意数量的图表。屏幕上的图表数量可能会有所不同,但都具有相同的x轴。我在自定义控件上添加了一个图表跟踪球线,它可以在鼠标移动的一个图表上正常工作。我想在窗口上的所有其他图表上添加相同的轨迹球线,以便一个轨道球上的移动将反映其他图表上的相同位置。 我怎么能以编程方式实现此行为?
答案 0 :(得分:0)
我不知道你是否可以在不向每张图表添加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;
在上面的代码snippit中,rcvUPM是一个包含要显示的所有数据系列的radchartview,ctbcMain_TextNeeded用于自定义轨迹球悬停的内容。
默认情况下,悬停内容将包含每个系列中的多个点,即使在Telerik支持的建议下将InnerPointSize和OuterPointsSize设置为零之后,还需要在DataPointInfo对象集合上使用LINQ FirstOrDefault将其限制为一个每个系列点。