Chartview Trackball text format

2 posts, 0 answers
  1. Pinou
    Pinou avatar
    1 posts
    Member since:
    Jun 2012

    Posted 05 Sep 2013 Link to this post

    Hi,

    I'm currently working with implementing new chartview in winform application.
    I activate the trackball to show informations like in this sample 
    http://www.telerik.com/help/winforms/chartview-features-trackball.html

    In this sample, informations are displayed in color, each on a new line and with the LineSeries name.

    X - 3: 23
    Y - 3: 7

    But when I copy the same code in my solution, I view
    "X 23 Y 7"

    Is there an option to set the default text format ?
    If not, do you have sample for using TextNeeded event to build this text formated with axes information ?

    Thanks
  2. George
    Admin
    George avatar
    500 posts

    Posted 10 Sep 2013 Link to this post

    Hello Frédéric,

    Thank you for contacting us.

    I have logged this in our Public Issue Tracking System. You can find it at this address - http://www.telerik.com/support/pits.aspx#/public/winforms/15705.

    As a temporary workaround, you can use this class:
    public class MyTrackBallController : ChartTrackballController
    {
        protected override string GetTrackballText(List<DataPointInfo> points)
        {
            StringBuilder result = new StringBuilder("<html>");
     
            SortedDictionary<Telerik.WinControls.UI.ChartSeries, List<DataPoint>> visiblePoints
                = new SortedDictionary<Telerik.WinControls.UI.ChartSeries, List<DataPoint>>(new ChartSeriesComparer());
             
            foreach (DataPointInfo pointInfo in points)
            {
                if (visiblePoints.ContainsKey(pointInfo.Series))
                {
                    visiblePoints[pointInfo.Series].Add(pointInfo.DataPoint);
                }
                else
                {
                    visiblePoints.Add(pointInfo.Series, new List<DataPoint>() { pointInfo.DataPoint });
                }
            }
             
            int counter = 0;
            foreach (Telerik.WinControls.UI.ChartSeries series in visiblePoints.Keys)
            {
                for (int i = 0; i < visiblePoints[series].Count; i++)
                {
                    Color pointColor = this.GetColorForDataPoint(series, visiblePoints[series][i]);
                    string color = string.Format("{0},{1},{2},{3}", pointColor.A, pointColor.R, pointColor.G, pointColor.B);
                    result.AppendFormat("<color={0}>{1}", color, this.GetPointText(visiblePoints[series][i]));
             
                    if (i < visiblePoints[series].Count)
                    {
                        result.Append(" ");
                    }
                }
             
                counter++;
             
                if (counter < visiblePoints.Keys.Count)
                {
                    result.Append("\n");
                }
            }
             
            result.Append("</html>");
             
            return result.ToString();
        }
     
        class ChartSeriesComparer : IComparer<Telerik.WinControls.UI.ChartSeries>
        {
            public int Compare(Telerik.WinControls.UI.ChartSeries x, Telerik.WinControls.UI.ChartSeries y)
            {
                if (!(x is IndicatorBase) && y is IndicatorBase)
                {
                    return -1;
                }
                else if (x is IndicatorBase && !(y is IndicatorBase))
                {
                    return 1;
                }
     
                if (x.Equals(y))
                {
                    return 0;
                }
     
                return 1;
            }
        }
     
    }

    Your Telerik Points were updated for the report.

    I hope this will be of your help.
     
    Regards,
    George
    Telerik
    TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WINFORMS.
    Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
    Sign up for Free application insights >>
  3. UI for WinForms is Visual Studio 2017 Ready
Back to Top