Duplicated
Last Updated: 26 Feb 2024 10:09 by ADMIN
Created by: Chris
Comments: 1
Category: ChartView
Type: Feature Request
1
Allow user to export current view as an image.
Completed
Last Updated: 01 Oct 2014 12:13 by ADMIN
To reproduce:

Use the following code with RadChartView: 

this.Chart.Series.Add(new LineSeries());


for (int i = 0; i < 50; i++)
{
    if (i == 10)
    {
        this.Chart.Series[0].DataPoints.Add(new CategoricalDataPoint(1));
        continue;
    }


    this.Chart.Series[0].DataPoints.Add(new CategoricalDataPoint(0));
}

this.Chart.ShowGrid = true;

You will see that the point will not be rendered correctly and will be taller than 1.

Completed
Last Updated: 16 Mar 2015 07:49 by ADMIN
Add the ability a user to be able to use a Custom DashStyle in the following scenario:

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

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

The following article describes how to use a Custom DashStyle: How to: Draw a Custom Dashed Line
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: 30 Jan 2015 17:50 by ADMIN
When one adds data points with negative and positive values, the negative ones should go below the 0, for example, with the following data:

AreaSeries areaSeries = new AreaSeries();
areaSeries.DataPoints.Add(new CategoricalDataPoint(5, "Jan"));
areaSeries.DataPoints.Add(new CategoricalDataPoint(-10, "Apr"));

Resolution: 
To use the functionality one should set the StartPositionAxis and StartPositionValue properties of an axis. The first property is the axis along which the current axis will be aligned. The second is the value where the current axis should be positioned.
Here is a sample code: 
AreaSeries areaSeries = new AreaSeries();
areaSeries.DataPoints.Add(new CategoricalDataPoint(13, "Jan"));
areaSeries.DataPoints.Add(new CategoricalDataPoint(20, "Apr"));
areaSeries.DataPoints.Add(new CategoricalDataPoint(-15, "Jul"));
areaSeries.DataPoints.Add(new CategoricalDataPoint(16, "Oct"));
this.radChartView1.Series.Add(areaSeries);

areaSeries.HorizontalAxis.StartPositionAxis = areaSeries.VerticalAxis;
areaSeries.HorizontalAxis.StartPositionValue = 0; 
Completed
Last Updated: 30 Jan 2015 13:18 by ADMIN
To reproduce:

Add a RadChartView to a Form. Use the following code:

this.Chart.AreaType = ChartAreaType.Pie;
this.Chart.ShowLegend = true;
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.Chart.Series.Add(series);

Workaround:

Private Sub LegendElement_VisualItemCreating(sender As Object, e As LegendItemElementCreatingEventArgs)
    Dim pieElement As PiePointElement = DirectCast(e.LegendItem.Element, PiePointElement)
    Dim dataPoint As PieDataPoint = DirectCast(pieElement.DataPoint, PieDataPoint)
    e.LegendItem.Title = dataPoint.Name
End Sub
Completed
Last Updated: 30 Jan 2015 13:03 by ADMIN
Add BarSeries with several CategoricalDataPoint with some long category text. 
Change the chart's area orientation, then you will notice that the AxisLabelElements overlaps the axis
Completed
Last Updated: 20 Feb 2014 15:04 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: ChartView
Type: Feature Request
0
The Step Line chart type is similar to the Line chart type, but it does not use the shortest distance to connect two data points. Instead, this chart type uses vertical and horizontal lines to connect the data points in a series forming a step-like progression.
Completed
Last Updated: 31 Mar 2014 09:05 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
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: 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: 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: 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: 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: 10 Feb 2015 12:54 by ADMIN
Add RightToLeft support in DrillDownNavigator.
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;
Declined
Last Updated: 28 Dec 2016 10:52 by ADMIN
ADMIN
Created by: Peter
Comments: 3
Category: ChartView
Type: Feature Request
2
The Line Series cannot be clicked/selected and cannot be used in DrillDown scenarios.