Declined
Last Updated: 01 Oct 2014 08:39 by ADMIN
ADMIN
Created by: Ivan Petrov
Comments: 1
Category: ChartView
Type: Bug Report
4
Steps to reproduce.

1. Add a chart view to a form.
2. Create a series and add several data points. For categories use double values in the range 10 - 20
3. Create a second series and this time for categories use double values in the same range without duplication.
4. Assign one linear and one categorical axis to the series and add them to the char view.
5. Run the project and you will see that the categories from the second series are next to those from the first series, while they should be combined according their values.
Completed
Last Updated: 09 Sep 2014 11:43 by ADMIN
ADMIN
Created by: Ivan Petrov
Comments: 0
Category: ChartView
Type: Bug Report
0
Currently the PieRenderer class is private and cannot be inherited nor extended. All other renderer classes are public.
Completed
Last Updated: 12 Jun 2014 11:35 by ADMIN
Steps to reproduce:

1. Clear all series and axes from a chart
2. Create new axes and series and databind the series
3. Add the new series and axes to the chart
4. Repeat the steps above multiple times
Completed
Last Updated: 12 Jun 2014 11:35 by Chris Ward
To reproduce:

Have a RadButton and a RadChartView on a form. On button click use the following code:
private void GenerateSeries()
{
    LineSeries lineSeries = new LineSeries();
    lineSeries.DataPoints.Add(new CategoricalDataPoint(20, "Jan") { Label = "January" });
    lineSeries.DataPoints.Add(new CategoricalDataPoint(22, "Apr"));
    lineSeries.DataPoints.Add(new CategoricalDataPoint(12, "Jul"));
    lineSeries.DataPoints.Add(new CategoricalDataPoint(19, "Oct"));
    lineSeries.LegendTitle = "Line 1 ";
    this.Chart.Series.Add(lineSeries);
    lineSeries.BackColor = Color.Black;
    lineSeries.PointSize = new SizeF(15, 15);

    LineSeries lineSeries2 = new LineSeries();
    lineSeries2.DataPoints.Add(new CategoricalDataPoint(18, "Jan"));
    lineSeries2.DataPoints.Add(new CategoricalDataPoint(15, "Apr"));
    lineSeries2.DataPoints.Add(new CategoricalDataPoint(17, "Jul"));
    lineSeries2.DataPoints.Add(new CategoricalDataPoint(22, "Oct"));

    lineSeries2.LegendTitle = "Line 2 ";
    this.Chart.Series.Add(lineSeries2);
}

void RadButton_Click(object sender, EventArgs e)
{
    this.Chart.Series.Clear();
    this.GenerateSeries();
}


You will notice that the memory will not decrease after a few presses of the button.

Workaround:

Set the Provider of the LegendElement to null:

private void GenerateSeries()
{
    this.Chart.ChartElement.LegendElement.Provider = null;


    LineSeries lineSeries = new LineSeries();
    lineSeries.DataPoints.Add(new CategoricalDataPoint(20, "Jan") { Label = "January" });
    lineSeries.DataPoints.Add(new CategoricalDataPoint(22, "Apr"));
    lineSeries.DataPoints.Add(new CategoricalDataPoint(12, "Jul"));
    lineSeries.DataPoints.Add(new CategoricalDataPoint(19, "Oct"));
    lineSeries.LegendTitle = "Line 1 ";
    this.Chart.Series.Add(lineSeries);
    lineSeries.BackColor = Color.Black;
    lineSeries.PointSize = new SizeF(15, 15);

    LineSeries lineSeries2 = new LineSeries();
    lineSeries2.DataPoints.Add(new CategoricalDataPoint(18, "Jan"));
    lineSeries2.DataPoints.Add(new CategoricalDataPoint(15, "Apr"));
    lineSeries2.DataPoints.Add(new CategoricalDataPoint(17, "Jul"));
    lineSeries2.DataPoints.Add(new CategoricalDataPoint(22, "Oct"));

    lineSeries2.LegendTitle = "Line 2 ";
    this.Chart.Series.Add(lineSeries2);
}

void Button_Click(object sender, EventArgs e)
{
    this.Chart.Series.Clear();
    this.GenerateSeries();
}
Completed
Last Updated: 10 Jun 2014 10:50 by ADMIN
ADMIN
Created by: Nikolay
Comments: 0
Category: ChartView
Type: Bug Report
1
RadChartView should have empty values support just like RadChart had it.
Completed
Last Updated: 05 Jun 2014 07:08 by ADMIN
Currently, there seems to be no convenient API for formatting data point elements. There is a CreatePointElement event, which however does not work properly.
Completed
Last Updated: 29 May 2014 13:17 by ADMIN
To reproduce:

Setup the following RadChartView:

this.Chart.ShowLegend = true;
this.Chart.Series.Add(new LineSeries() { LegendTitle = "DDDD" });
this.Chart.ChartElement.LegendElement.Items[0].Element.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot;


for (int i = 0; i < 10; i++)
{
    this.Chart.Series[0].DataPoints.Add(i);
}


You will see that although that you have changed the BorderDashStyle of the Element, the LineSerie will be drawn normally.
Completed
Last Updated: 21 May 2014 12:54 by Jesse Dyck
ADMIN
Created by: Jack
Comments: 1
Category: ChartView
Type: Bug Report
5
Currently RadChartView does not support null values.
Completed
Last Updated: 14 May 2014 11:12 by ADMIN
RadChartView - DateTimeContinueAxis ignores the MaximumTicks property with some specific data points. 

Steps to reproduce:
Use the following points:
            points.Add(new CategoricalDataPoint(r.Next(0, 100), new DateTime(2007, 7, 24)));
            points.Add(new CategoricalDataPoint(r.Next(0, 100), new DateTime(2007, 10, 30)));
            points.Add(new CategoricalDataPoint(r.Next(0, 100), new DateTime(2008, 4, 29)));
            points.Add(new CategoricalDataPoint(r.Next(0, 100), new DateTime(2008, 10, 27)));
            points.Add(new CategoricalDataPoint(r.Next(0, 100), new DateTime(2009, 4, 1)));
            points.Add(new CategoricalDataPoint(r.Next(0, 100), new DateTime(2010, 6, 28)));
            points.Add(new CategoricalDataPoint(r.Next(0, 100), new DateTime(2010, 10, 7)));
            points.Add(new CategoricalDataPoint(r.Next(0, 100), new DateTime(2011, 4, 19)));
            points.Add(new CategoricalDataPoint(r.Next(0, 100), new DateTime(2011, 9, 27)));
            points.Add(new CategoricalDataPoint(r.Next(0, 100), new DateTime(2012, 1, 10)));
            points.Add(new CategoricalDataPoint(r.Next(0, 100), new DateTime(2012, 4, 11)));
            points.Add(new CategoricalDataPoint(r.Next(0, 100), new DateTime(2012, 10, 16)));
Completed
Last Updated: 08 May 2014 10:06 by ADMIN
To reproduce: use the following code snippet
public Form1()
{
    InitializeComponent();

    ScatterLineSeries scatterSeries = new ScatterLineSeries();
    scatterSeries.DataPoints.Add(new ScatterDataPoint(15, 19));
    scatterSeries.DataPoints.Add(new ScatterDataPoint(18, 10));
    scatterSeries.DataPoints.Add(new ScatterDataPoint(13, 15));
    scatterSeries.DataPoints.Add(new ScatterDataPoint(10, 8));
    scatterSeries.DataPoints.Add(new ScatterDataPoint(5, 2));
    scatterSeries.PointSize = new SizeF(8, 8);
    this.radChartView1.Series.Add(scatterSeries);

    ScatterLineSeries scatterSeries2 = new ScatterLineSeries();
    scatterSeries2.DataPoints.Add(new ScatterDataPoint(2, 24));
    scatterSeries2.DataPoints.Add(new ScatterDataPoint(7, 12));
    scatterSeries2.DataPoints.Add(new ScatterDataPoint(15, 10));
    scatterSeries2.DataPoints.Add(new ScatterDataPoint(18, 22));
    scatterSeries2.DataPoints.Add(new ScatterDataPoint(20, 20));
    scatterSeries2.Shape = new RoundRectShape(1);
    scatterSeries2.PointSize = new SizeF(8, 8);
    this.radChartView1.Series.Add(scatterSeries2);
    
    ChartTooltipController toolTipController = new ChartTooltipController();
   
    radChartView1.Controllers.Add(toolTipController); 
}

Workaround: use custom renderer

public Form1()
{
    InitializeComponent();

    this.radChartView1.CreateRenderer += radChartView1_CreateRenderer;
}
private void radChartView1_CreateRenderer(object sender, ChartViewCreateRendererEventArgs e)
{
    e.Renderer = new CustomCartesianRenderer(e.Area as CartesianArea);
}

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++)
        {
            ScatterSeriesDrawPart scatterPart = this.DrawParts[i] as ScatterSeriesDrawPart;
            if (scatterPart != null)
            {
                this.DrawParts[i] = new CustomScatterSeriesDrawPart((ScatterLineSeries)scatterPart.Element, this);
            }
        }
    }
}

public class CustomScatterSeriesDrawPart : ScatterLineSeriesDrawPart
{
    public CustomScatterSeriesDrawPart(ScatterLineSeries series, IChartRenderer renderer) 
        : base(series, renderer)
    {
    }

    public override DataPoint HitTest(Point location)
    {
        for (int i = 0; i < this.Element.DataPoints.Count; i++)
        {
            RadRect slot = this.Element.DataPoints[i].LayoutSlot;
            float pointHalfWidth = this.Element.PointSize.Width / 2;
            float pointHalfHeight = this.Element.PointSize.Height / 2;

            RectangleF scatterBounds = new RectangleF((float)(this.OffsetX + slot.X - pointHalfWidth),
                (float)(this.OffsetY + slot.Y - pointHalfHeight), this.Element.PointSize.Width, this.Element.PointSize.Height);

            if (scatterBounds.Contains(location.X, location.Y))
            {
                return this.Element.DataPoints[i];
            }
        }

        return null;
    }
}
Completed
Last Updated: 31 Mar 2014 09:05 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 0
Category: ChartView
Type: Bug Report
0
To reproduce: -add RadChartView and use the following code: this.radChartView1.AreaType = ChartAreaType.Pie; PieSeries series = new PieSeries(); series.DataPoints.Add(new PieDataPoint(50, "Germany")); series.DataPoints.Add(new PieDataPoint(70, "United States")); series.DataPoints.Add(new PieDataPoint(40, "France")); series.DataPoints.Add(new PieDataPoint(25, "United Kingdom")); series.ShowLabels = true; this.radChartView1.Series.Add(series);

Workaround: recreate the ChartDataPointElementController: this.radChartView1.AreaType = ChartAreaType.Pie; this.radChartView1.Controllers.RemoveAt(0); this.radChartView1.Controllers.Add(new ChartDataPointElementController()); PieSeries series = new PieSeries(); series.DataPoints.Add(new PieDataPoint(50, "Germany")); series.DataPoints.Add(new PieDataPoint(70, "United States")); series.DataPoints.Add(new PieDataPoint(40, "France")); series.DataPoints.Add(new PieDataPoint(25, "United Kingdom")); series.ShowLabels = true; this.radChartView1.Series.Add(series);
Completed
Last Updated: 27 Feb 2014 12:48 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: ChartView
Type: Bug Report
2
To reproduce:
Add Series and Axes to a RadChartView and a ChartPanZoomController. Zoom and pan a little, then clear all the series and axes and add new ones. Try to pan now.
Completed
Last Updated: 11 Feb 2014 16:19 by ADMIN
RadChartView -  sometimes Property Builder of RadChartView is setting HorizontalAxis to be LinearAxis and to VerticalAxis to be DateTimeCategoricalAxis when you select "Linear & Date Time Categorical " which leads to incorrect work of PanZoom.

Workaround:
Use Smart Tag instead of Property Builder or swap the types of the axes in Design file.
Completed
Last Updated: 21 Nov 2013 09:04 by ADMIN
To reproduce:
-add RadChartView and use the following code:
public Form1()
{
    InitializeComponent();

    radChartView1.SelectionMode = ChartSelectionMode.MultipleDataPoints;
    MessageBox.Show(radChartView1.SelectionMode.ToString());
    radChartView1.SelectionMode = ChartSelectionMode.MultipleDataPoints;
    MessageBox.Show(radChartView1.SelectionMode.ToString());
}
Completed
Last Updated: 07 Nov 2013 02:26 by ADMIN
To reproduce:
1.Add RadChartView
2.Set vertical axis to be LinearAxis
3.Add DataPoints with value with 14 or more digits. 
4.Set FormatLabel = {0:C} or {0:F0} 
5.Run project and will see that labels overlaps vertical axis.

Workaround: 
Use custom format provider 
this.radChartView1.Axes[1].LabelFormatProvider = new MyFormatProvider();
Completed
Last Updated: 23 Oct 2013 05:02 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: ChartView
Type: Bug Report
1
To reproduce:
Add a RadChartView and add some LineSeries and data points. Set the ShowTrackBall property to true. In some cases KeyNotFound exception occurs.

Workaround:
Use the following class:
public class MyController : ChartTrackballController
{
    protected override string GetTrackballText(List<DataPointInfo> points)
    {
        StringBuilder result = new StringBuilder("<html>");

        SortedDictionary<ChartSeries, List<DataPoint>> visiblePoints = new SortedDictionary<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 (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<ChartSeries>
    {
        public ChartSeriesComparer()
        {
        }

        public int Compare(ChartSeries x, ChartSeries y)
        {
            if (!(x is IndicatorBase) && y is IndicatorBase)
            {
                return -1;
            }
            else if (x is IndicatorBase && !(y is IndicatorBase))
            {
                return 1;
            }

            return x.GetHashCode().CompareTo(y.GetHashCode());
        }
    }
}

Replace the old controller as follows:
for (int i = 0; i < this.radChartView1.Controllers.Count; i++)
{
    if (this.radChartView1.Controllers[i] is ChartTrackballController)
    {
        this.radChartView1.Controllers[i] = new MyController();
        break;
    }
}

Note that the controller must be replaced before any data is added to the chart
Completed
Last Updated: 21 Oct 2013 09:29 by ADMIN
Use the code below and reduce the Form size to see the extra line:

  public Form1()
        {
            InitializeComponent();

            radChartView1.Parent = this;
            radChartView1.Dock = DockStyle.Fill;
            radChartView1.ShowLegend = true;

            radChartView1.ShowGrid = true;
            CartesianGrid grid = ((CartesianGrid)radChartView1.GetArea<CartesianArea>().Grid);
            grid.DrawVerticalFills = true;
            grid.AlternatingHorizontalColor = false;
            grid.AlternatingVerticalColor = false;
            grid.BackColor = Color.Red;
            grid.ForeColor = Color.Blue;
            grid.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid;

            DateTimeContinuousAxis horizontalAxis = new DateTimeContinuousAxis();
            horizontalAxis.MajorStepUnit = Telerik.Charting.TimeInterval.Day;
            horizontalAxis.MajorStep =2;
            horizontalAxis.LabelFormat = "{0:dd/MM/yyyy}";
            LinearAxis verticalAxis1 = new LinearAxis();
            verticalAxis1.AxisType = AxisType.Second;
            LinearAxis verticalAxis2 = new LinearAxis();
            verticalAxis2.AxisType = AxisType.Second;
            verticalAxis2.HorizontalLocation = AxisHorizontalLocation.Right;

            LineSeries line1 = new LineSeries();
            line1.HorizontalAxis = horizontalAxis;
            line1.VerticalAxis = verticalAxis1;

            LineSeries line2 = new LineSeries();
            line2.HorizontalAxis = horizontalAxis;
            line2.VerticalAxis = verticalAxis2;

            line1.DataPoints.Add(new CategoricalDataPoint(26d, DateTime.Now.AddDays(-6)));
            line1.DataPoints.Add(new CategoricalDataPoint(20d, DateTime.Now.AddDays(-5)));
            line1.DataPoints.Add(new CategoricalDataPoint(12d, DateTime.Now.AddDays(-4)));
            line1.DataPoints.Add(new CategoricalDataPoint(15d, DateTime.Now.AddDays(-2)));
            line1.DataPoints.Add(new CategoricalDataPoint(21d, DateTime.Now.AddDays(-1)));

            line2.DataPoints.Add(new CategoricalDataPoint(32d, DateTime.Now.AddDays(-6)));
            line2.DataPoints.Add(new CategoricalDataPoint(52d, DateTime.Now.AddDays(-4)));
            line2.DataPoints.Add(new CategoricalDataPoint(35d, DateTime.Now.AddDays(-3)));
            line2.DataPoints.Add(new CategoricalDataPoint(36d, DateTime.Now.AddDays(-2)));
            line2.DataPoints.Add(new CategoricalDataPoint(11d, DateTime.Now.AddDays(-1)));

            line1.LegendTitle = "line1";
            line2.LegendTitle = "line2";

            this.radChartView1.Series.Add(line1);
            this.radChartView1.Series.Add(line2);
        }
Completed
Last Updated: 10 Sep 2013 01:39 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: ChartView
Type: Bug Report
0
To reproduce:
this.chart.Controllers.Add(new ChartTrackballController());
this.chart.Dock = DockStyle.Fill;
this.chart.AreaType = ChartAreaType.Cartesian;
LineSeries lineSeries1 = new LineSeries();
lineSeries1.Name = "Line 1";

lineSeries1.DataPoints.Add(new CategoricalDataPoint(10, "1"));
lineSeries1.DataPoints.Add(new CategoricalDataPoint(4, "2"));
lineSeries1.DataPoints.Add(new CategoricalDataPoint(23, "3"));
lineSeries1.DataPoints.Add(new CategoricalDataPoint(11, "4"));
lineSeries1.DataPoints.Add(new CategoricalDataPoint(15, "5"));
lineSeries1.DataPoints.Add(new CategoricalDataPoint(10, "6"));
lineSeries1.DataPoints.Add(new CategoricalDataPoint(4, "7"));
lineSeries1.DataPoints.Add(new CategoricalDataPoint(7, "8"));
lineSeries1.DataPoints.Add(new CategoricalDataPoint(11, "9"));
lineSeries1.DataPoints.Add(new CategoricalDataPoint(15, "10"));
this.chart.Series.Add(lineSeries1);

LineSeries lineSeries2 = new LineSeries();
lineSeries2.Name = "Line 2";

lineSeries2.DataPoints.Add(new CategoricalDataPoint(6, "1"));
lineSeries2.DataPoints.Add(new CategoricalDataPoint(20, "2"));
lineSeries2.DataPoints.Add(new CategoricalDataPoint(7, "3"));
lineSeries2.DataPoints.Add(new CategoricalDataPoint(8, "4"));
lineSeries2.DataPoints.Add(new CategoricalDataPoint(4, "5"));
lineSeries2.DataPoints.Add(new CategoricalDataPoint(10, "6"));
lineSeries2.DataPoints.Add(new CategoricalDataPoint(24, "7"));
lineSeries2.DataPoints.Add(new CategoricalDataPoint(17, "8"));
lineSeries2.DataPoints.Add(new CategoricalDataPoint(18, "9"));
lineSeries2.DataPoints.Add(new CategoricalDataPoint(43, "10"));
this.chart.Series.Add(lineSeries2);
this.chart.ShowTrackBall = true;

For workaround, 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;
        }
    }

}
Completed
Last Updated: 30 Aug 2013 12:22 by ADMIN
Add method to zoom by specified parameters
Completed
Last Updated: 18 Jul 2013 08:29 by ADMIN
To reproduce: 
AddChartView();
            radChartView1.ShowGrid = true;

            CartesianGrid grid = ((CartesianGrid)radChartView1.GetArea<CartesianArea>().Grid);
            grid.DrawVerticalFills = true;
            grid.AlternatingHorizontalColor = false;
            grid.AlternatingVerticalColor = false;
            grid.BackColor = Color.Red;
            grid.ForeColor = Color.Blue;
            grid.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid;