Are StepLine charts supported with the Winforms ChartView control

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

    Posted 26 Nov 2013 Link to this post

    I was wondering if steplines are supported in this control. Thanks in advance, Krisztian
  2. Dess
    Admin
    Dess avatar
    1601 posts

    Posted 29 Nov 2013 Link to this post

    Hello Krisztian,

    Thank you for contacting Telerik Support.

    The Step Line chart type is currently not supported. However, this is a quite reasonable request and therefore I have it in our Public Issue Tracking System - PITS. You can track its progress, subscribe for status changes and add your vote/comment to it on the following link - PITS item.

    I have also updated your Telerik points for the co-operation. 

    Currently, a possible solution that I can propose is use custom CartesianRenderer:
    public Form1()
    {
        InitializeComponent();
     
        this.radChartView1.CreateRenderer += radChartView1_CreateRenderer;
     
        LineSeries lineSeries = new LineSeries();
        lineSeries.BorderColor = Color.Black;
        lineSeries.DataPoints.Add(new CategoricalDataPoint(20, "Jan"));
        lineSeries.DataPoints.Add(new CategoricalDataPoint(42, "Apr"));
        lineSeries.DataPoints.Add(new CategoricalDataPoint(34, "Jul"));
        lineSeries.DataPoints.Add(new CategoricalDataPoint(25, "Oct"));
        this.radChartView1.Series.Add(lineSeries);
     
        LineSeries lineSeries2 = new LineSeries();
        lineSeries2.BorderColor = Color.Red;
        lineSeries2.DataPoints.Add(new CategoricalDataPoint(18, "Jan"));
        lineSeries2.DataPoints.Add(new CategoricalDataPoint(5, "Apr"));
        lineSeries2.DataPoints.Add(new CategoricalDataPoint(13, "Jul"));
        lineSeries2.DataPoints.Add(new CategoricalDataPoint(20, "Oct"));
        this.radChartView1.Series.Add(lineSeries2);
    }

    private void radChartView1_CreateRenderer(object sender, ChartViewCreateRendererEventArgs e)
    {
        e.Renderer = new CustomCartesianRenderer((CartesianArea)e.Area);
    }
     
    public class CustomCartesianRenderer : CartesianRenderer
    {
        public CustomCartesianRenderer(CartesianArea area) : base(area)
        {
        }
     
        protected override void Initialize()
        {
            base.Initialize();
     
            for (int i = 0; i < this.DrawParts.Count; i++)
            {
                LineSeriesDrawPart drawPart = this.DrawParts[i] as LineSeriesDrawPart;
                if (drawPart != null)
                {
                    this.DrawParts[i] = new CustomLineDrawPart((LineSeries)drawPart.Element, this);
                }
            }
        }
    }
     
    public class CustomLineDrawPart : LineSeriesDrawPart
    {
        public CustomLineDrawPart(LineSeriesBase series, IChartRenderer renderer) : base(series, renderer)
        {
        }
         
        protected override System.Drawing.Drawing2D.GraphicsPath GetLinePath()
        {
            PointF[] points = GetPointsPositionsArray();
            GraphicsPath path = new GraphicsPath();
            PointF x;
            PointF y;
     
            if (points.Length > 1)
            {
                for (int i = 1; i < points.Length; i++)
                {
                    x = points[i - 1];
                    y = points[i];
                    path.AddLine(x.X, x.Y, y.X, x.Y);
                    path.AddLine(y.X, x.Y, y.X, y.Y);
                }
            }
            else
            {
                return null;
            }
     
            return path;
        }
    }

    You can find more information about custom rendering in RadChartView in the referred help article.

    I hope this information helps. Should you have further questions, I would be glad to help.

    Regards,
    Desislava
    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