Как программно установить позицию Telerik Chart TrackBall

Я создал пользовательский элемент управления, в котором есть Telerik RadCartesianChart. Этот пользовательский элемент управления создает любое количество диаграмм в зависимости от выбора пользователя. Количество графиков на экране может варьироваться, но все они имеют одинаковую ось X. В пользовательский элемент управления я добавил линию шариков трека, которая отлично работает на одном графике при движении мыши. Я хочу добавить одну и ту же линию трекбола на все другие диаграммы в окне, чтобы движение на одном трекболе отражало ту же позицию на других графиках. Как я могу реализовать это поведение программно?

1 ответ

Я не знаю, можете ли вы сделать то, что вы пытаетесь, не добавляя 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 является представлением radchart, содержащим все серии данных, которые вы хотите показать, а ctbcMain_TextNeeded используется для настройки содержимого того, что показывает указатель мыши для трекбола.

Похоже, что по умолчанию содержимое наведения будет содержать несколько точек из каждой серии, даже после того, как InnerPointSize и OuterPointsSize были установлены в ноль по рекомендации Telerik для поддержки LINQ FirstOrDefault было необходимо для коллекции объектов DataPointInfo, чтобы ограничить его одной точкой на серию,

Другие вопросы по тегам