Approved
Last Updated: 06 Nov 2018 14:45 by Eric Moreau
ADMIN
Created by: Nikolay
Comments: 18
Category: ChartView
Type: Feature Request
14
3D Charts will be a nice addition to the WinForms suite
Approved
Last Updated: 15 Aug 2017 09:33 by ADMIN
ADMIN
Created by: Boryana
Comments: 0
Category: ChartView
Type: Feature Request
7
RadChartView should visualize the pan and zoom state of a view through a scroll bar
Approved
Last Updated: 02 Nov 2017 14:18 by ADMIN
ADMIN
Created by: Hristo
Comments: 0
Category: ChartView
Type: Feature Request
3
The new functionality should allow a display similar to the one in the WPF pie series:
http://docs.telerik.com/devtools/wpf/controls/radchartview/features/labels/smart-labels#using-smart-labels-in-radpiechart
Approved
Last Updated: 06 Nov 2018 07:33 by ADMIN
When setting the border color of the axis the labels are showing a border with the same color. The color is inherited from the axis element. One should be able to easily disable this, or it should not happen.

How to reproduce: 
public partial class RadForm1 : Telerik.WinControls.UI.RadForm
{
    LineSeries lineSeries;

    public RadForm1()
    {
        InitializeComponent();

        this.lineSeries = new LineSeries();

        this.lineSeries.DataPoints.Add(new CategoricalDataPoint(20, "Jan"));
        this.lineSeries.DataPoints.Add(new CategoricalDataPoint(22, "Apr"));
        this.lineSeries.DataPoints.Add(new CategoricalDataPoint(25, "Jul"));
        this.lineSeries.DataPoints.Add(new CategoricalDataPoint(19, "Oct"));

        this.radChartView1.Series.Add(this.lineSeries);

        this.lineSeries.HorizontalAxis.BorderColor = Color.Green;
        this.lineSeries.VerticalAxis.BorderColor = Color.Blue;
    }
}

Workaround: iterate each of the axis labels and set their border color to Transparent
public partial class RadForm1 : Telerik.WinControls.UI.RadForm
{
    LineSeries lineSeries;

    public RadForm1()
    {
        InitializeComponent();

        this.lineSeries = new LineSeries();

        this.lineSeries.DataPoints.Add(new CategoricalDataPoint(20, "Jan"));
        this.lineSeries.DataPoints.Add(new CategoricalDataPoint(22, "Apr"));
        this.lineSeries.DataPoints.Add(new CategoricalDataPoint(25, "Jul"));
        this.lineSeries.DataPoints.Add(new CategoricalDataPoint(19, "Oct"));

        this.radChartView1.Series.Add(this.lineSeries);

        this.lineSeries.HorizontalAxis.BorderColor = Color.Green;
        this.lineSeries.VerticalAxis.BorderColor = Color.Blue;
    }

    protected override void OnShown(EventArgs e)
    {
        base.OnShown(e);

        foreach (var item in this.lineSeries.VerticalAxis.Children)
        {
            AxisLabelElement label = item as AxisLabelElement;
            if (label != null)
            {
                label.BorderColor = Color.Transparent;
            }
        }

        foreach (var item in this.lineSeries.HorizontalAxis.Children)
        {
            AxisLabelElement label = item as AxisLabelElement;
            if (label != null)
            {
                label.BorderColor = Color.Transparent;
            }
        }
    }
}
Approved
Last Updated: 22 May 2017 05:57 by ADMIN
How to reproduce: create a drill down chart with different area types on the different levels. 
The issue seems to be related to some series not implementing the ILegendInfoProvider interface.

Workaround:
A similar result as having a drill-down chart with series having different area types can be achieved manually using the ChartSelectionController. Please check the attached project and video file.
Approved
Last Updated: 16 Nov 2017 11:41 by ADMIN
When combining scalebreaks and series stacking, the rendered chart does not match the data. 

See attached solution: The bar of the category "1/2016" has a length of 105 (as indicated by the tooltips) -- but the corresponding axis labeling shows a value of 37.  The scalebreak is off too (probably matching the wrong axis).
Approved
Last Updated: 11 Jul 2016 08:40 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 0
Category: ChartView
Type: Feature Request
2
Note: when you apply a palette the series doesn't have hover and selection indication.
Approved
Last Updated: 15 Aug 2017 10:02 by ADMIN
ADMIN
Created by: Dimitar
Comments: 0
Category: ChartView
Type: Feature Request
1

			
Approved
Last Updated: 29 Mar 2016 11:04 by ADMIN
Workaround: use the ChartTrackerballController.TextNeeded event.
Approved
Last Updated: 29 Mar 2016 11:04 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 0
Category: ChartView
Type: Bug Report
1
To reproduce:

BarSeries barSeries = new BarSeries("Performance", "RepresentativeName");
barSeries.Name = "Q1";
barSeries.CombineMode = ChartSeriesCombineMode.Stack;
barSeries.DataPoints.Add(new CategoricalDataPoint(177, "Harley"));
barSeries.DataPoints.Add(new CategoricalDataPoint(128, "White"));
barSeries.DataPoints.Add(new CategoricalDataPoint(143, "Smith"));
barSeries.DataPoints.Add(new CategoricalDataPoint(111, "Jones")); 
barSeries.DataPoints.Add(new CategoricalDataPoint(118, "Marshall"));
this.radChartView1.Series.Add(barSeries);
BarSeries barSeries2 = new BarSeries("Performance", "RepresentativeName");
barSeries2.Name = "Q2";
barSeries2.CombineMode = ChartSeriesCombineMode.Stack;
barSeries2.DataPoints.Add(new CategoricalDataPoint(153, "Harley"));
barSeries2.DataPoints.Add(new CategoricalDataPoint(141, "White"));
barSeries2.DataPoints.Add(new CategoricalDataPoint(130, "Smith"));
barSeries2.DataPoints.Add(new CategoricalDataPoint(88, "Jones"));
barSeries2.DataPoints.Add(new CategoricalDataPoint(109, "Marshall"));
this.radChartView1.Series.Add(barSeries2);
BarSeries barSeries3 = new BarSeries("Performance", "RepresentativeName");
barSeries3.Name = "Q3";
barSeries3.CombineMode = ChartSeriesCombineMode.Stack;
barSeries3.DataPoints.Add(new CategoricalDataPoint(153, "Harley"));
barSeries3.DataPoints.Add(new CategoricalDataPoint(141, "White"));
barSeries3.DataPoints.Add(new CategoricalDataPoint(130, "Smith"));
barSeries3.DataPoints.Add(new CategoricalDataPoint(88, "Jones"));
barSeries3.DataPoints.Add(new CategoricalDataPoint(109, "Marshall"));
this.radChartView1.Series.Add(barSeries3);

this.radChartView1.ShowTrackBall = true;

Note: the trackball labels should be displayed in the order the series are displayed in the chart view.

Workaround:

private void ChartTrackballController_TextNeeded(object sender, TextNeededEventArgs e)
{
    string pattern = " \\d+.?\\d* ";
    StringBuilder sb = new StringBuilder("<html>");
    List<DataPointInfo> points = new List<DataPointInfo>();
    foreach (DataPointInfo dp in e.Points)
    {
        points.Add(dp);
    }
    points.Reverse();
    foreach (DataPointInfo dp in points)
    {
        Color pointColor = this.GetColorForDataPoint(dp.Series, dp.DataPoint);
        string color = string.Format("{0},{1},{2},{3}", pointColor.A, pointColor.R, pointColor.G, pointColor.B);
        sb.AppendFormat("<color={0}>{1}", color, string.Format("{0} {1}", dp.Series.Name, ((CategoricalDataPoint)dp.DataPoint).Value));
        sb.AppendLine();
    }

    e.Text = sb.ToString();
}

protected virtual Color GetColorForDataPoint(ChartSeries series, DataPoint point)
{
    if (series is IndicatorBase)
    {
        return series.BorderColor;
    }

    foreach (UIChartElement element in series.Children)
    {
        DataPointElement pointElement = element as DataPointElement;

        if (pointElement != null)
        {
            if (pointElement.DataPoint.Equals(point))
            {
                if (pointElement.BackColor.A > 0)
                {
                    return pointElement.BackColor;
                }
                else
                {
                    return pointElement.BorderColor;
                }
            }
        }
    }

    return Color.Black;
}
Approved
Last Updated: 15 Aug 2017 10:08 by ADMIN
Approved
Last Updated: 19 Jun 2017 06:21 by ADMIN
To reproduce:
- Use HTML- like text formatting in the chart title.
- Export the chart to image.
- The tags are shown in the text.

Workaround:
private void radButton1_Click(object sender, EventArgs e)
{
    radChartView1.ShowTitle = false;

    TextPrimitiveHtmlImpl impl = new TextPrimitiveHtmlImpl();
    TextParams textParams = this.radChartView1.ChartElement.TitleElement.TextParams;
    SizeF size = impl.MeasureOverride(new SizeF(500f, 200), textParams);

    using (MemoryStream stream = new MemoryStream())
    {
        radChartView1.ExportToImage(stream, new Size(500, 500 - (int)size.Height));

        Bitmap bmp = new Bitmap(500, 500);

        using (Graphics g = Graphics.FromImage(bmp))
        {
            g.Clear(Color.White);
            textParams.paintingRectangle = new RectangleF(Point.Empty, size);
            impl.PaintPrimitive(new RadGdiGraphics(g), textParams);
            g.DrawImage(Image.FromStream(stream), 0, size.Height, 500, 500 - size.Height);
        }

        bmp.Save(@"D:\xfile.bmp");
    }

    radChartView1.ShowTitle = true;
}
Approved
Last Updated: 29 Mar 2016 10:41 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();
    this.radChartView1.AreaType = ChartAreaType.Polar;
    Random rand = new Random();
    for (int i = 0; i < 80; i++)
    {
        RadarLineSeries s = new RadarLineSeries();
        s.ShowLabels = true;
        for (int j = 0; j < 8; j++)
        {
            s.DataPoints.Add(new CategoricalDataPoint(rand.Next(1, 100), "X" + j));
        }
       
        this.radChartView1.Series.Add(s);
    }
    this.radChartView1.ShowSmartLabels = true;
}
Approved
Last Updated: 29 Mar 2016 10:42 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 0
Category: ChartView
Type: Bug Report
1
To reproduce:

public Form1()
{
    InitializeComponent();

    Random rand = new Random();
    for (int i = 0; i < 3; i++)
    {
        LineSeries lineSeries = new LineSeries();    
        lineSeries.DataPoints.Add(new CategoricalDataPoint(rand.Next(-50, 50), "Jan"));
        lineSeries.DataPoints.Add(new CategoricalDataPoint(rand.Next(-50, 50), "Apr"));
        lineSeries.DataPoints.Add(new CategoricalDataPoint(rand.Next(-50, 50), "Jul"));
        lineSeries.DataPoints.Add(new CategoricalDataPoint(rand.Next(-50, 50), "Oct"));
        this.radChartView1.Series.Add(lineSeries);
    }

    this.radChartView1.ShowLegend = true;
    this.radChartView1.ChartElement.LegendPosition = LegendPosition.Bottom;

    ((LineSeries)this.radChartView1.Series[0]).LegendTitle = "S&P 500";
    ((LineSeries)this.radChartView1.Series[1]).LegendTitle = "MSCI Emerging Markets TR Index";
    ((LineSeries)this.radChartView1.Series[2]).LegendTitle = "Great ETF";
}


Workaround:

Font f = new Font("Times New Roman", 10f, FontStyle.Regular);

private void Form1_Load(object sender, EventArgs e)
{
    foreach (LegendItemElement item in this.radChartView1.ChartElement.LegendElement.StackElement.Children)
    {
        item.Font = f;
    }
}
Approved
Last Updated: 29 Mar 2016 10:59 by ADMIN
To reproduce:
- Subscribe to the SelectedPointChanged event and show a dialog in it.
- Start the chart and zoom in. Select a point, close the dialog and select a point again.

Workaround:
class MyChartSelectionController : ChartSelectionController
{
    protected override ActionResult OnMouseDown(MouseEventArgs e)
    {
        //return base.OnMouseDown(e);
        return Controller.Empty;
    }
    protected override ActionResult OnMouseUp(MouseEventArgs e)
    {
        if (!this.AllowSelect || this.SelectionMode == ChartSelectionMode.None)
        {
            return base.OnMouseUp(e);
        }

        DataPoint oldDataPoint = SelectedPoint;
        DataPoint newDataPoint = null;
        ChartSeries oldSeries = SelectedSeries;
        ChartSeries newSeries = null;
        DataPoint point = null;

        foreach (ChartSeries series in this.Area.Series)
        {
            point = series.HitTest(e.X, e.Y);
            if (point != null)
            {
                newDataPoint = point;
                newSeries = series;
                break;
            }
        }

        if (point == null)
        {
            return base.OnMouseUp(e);
        }

        ChartViewSelectedPointChangingEventArgs cancelArgs = new ChartViewSelectedPointChangingEventArgs(oldDataPoint, newDataPoint, oldSeries, newSeries, this.SelectionMode);
        OnSelectedPointChanging(cancelArgs);

        if (cancelArgs.Cancel == true)
        {
            return base.OnMouseUp(e);
        }

        if (oldDataPoint == newDataPoint)
        {
            oldDataPoint.IsSelected = !oldDataPoint.IsSelected;
            newDataPoint = null;
            SelectedPoint = null;
        }
        else
        {
            if (this.SelectionMode == ChartSelectionMode.SingleDataPoint && oldDataPoint != null)
            {
                oldDataPoint.IsSelected = false;
            }

            this.SelectedPoint = newDataPoint;
            this.SelectedPoint.IsSelected = !SelectedPoint.IsSelected;
        }

        ChartViewSelectedPointChangedEventArgs changedArgs = new ChartViewSelectedPointChangedEventArgs(oldDataPoint, newDataPoint, oldSeries, newSeries, this.SelectionMode);
        OnSelectedPointChanged(changedArgs);
    
        return base.OnMouseUp(e);
    }

   
}


Approved
Last Updated: 15 Aug 2017 10:02 by ADMIN
The trackball does not work well when charting the dxf cad drawing of a circle or more complex shape

would be better for it to have cross hair mode,  as single point mode does not work (as it picks up a massive array of x,y points in the tooltip, making it unmanageable)

Showtrackball = true
SelectionMode = SingleDataPoint
Approved
Last Updated: 15 Aug 2017 10:02 by ADMIN
ADMIN
Created by: Dimitar
Comments: 0
Category: ChartView
Type: Feature Request
1

			
Approved
Last Updated: 31 Aug 2016 11:00 by ADMIN
The event should not be triggered when moving the mouse over the same data point, as we already asked for data for it. We can cache it and reuse it.
Approved
Last Updated: 05 Jan 2018 14:31 by ADMIN
To reproduce:
            BarSeries barSeries = new BarSeries("Performance", "RepresentativeName");
            barSeries.DataPoints.Add(new CategoricalDataPoint(177, "Harley"));
            barSeries.DataPoints.Add(new CategoricalDataPoint(128, "White"));
            barSeries.DataPoints.Add(new CategoricalDataPoint(143, "Smith"));
            barSeries.DataPoints.Add(new CategoricalDataPoint(111, "Jones"));
            barSeries.DataPoints.Add(new CategoricalDataPoint(118, "Marshall")); 
            this.radChartView1.Series.Add(barSeries);

            LinearAxis verticalAxis = radChartView1.Axes.Get<LinearAxis>(1);
            verticalAxis.MajorStep = 5;
            LinearAxisModel axisModel = verticalAxis.Model as LinearAxisModel;
            
            AxisScaleBreak scaleBreakItem = new AxisScaleBreak();
            scaleBreakItem.Name = "Item1";
            scaleBreakItem.From = 80d;
            scaleBreakItem.To = 120d;
            verticalAxis.ScaleBreaks.Add(scaleBreakItem);
Approved
Last Updated: 30 Apr 2018 11:33 by ADMIN
To reproduce:
        public RadForm1()
        {
            InitializeComponent(); 

            this.radChartView1.AreaType = ChartAreaType.Polar;
            PolarAreaSeries polarAreaSeries = new PolarAreaSeries();
            PolarDataPoint polarPoint = new PolarDataPoint();
            polarPoint.Value = 35;
            polarPoint.Angle = 50;
            polarAreaSeries.DataPoints.Add(polarPoint);
            polarPoint = new PolarDataPoint();
            polarPoint.Value = 40;
            polarPoint.Angle = 200;
            polarAreaSeries.DataPoints.Add(polarPoint);
            polarPoint = new PolarDataPoint();
            polarPoint.Value = 55;
            polarPoint.Angle = 320;
            polarAreaSeries.DataPoints.Add(polarPoint);

            this.radChartView1.Series.Add(polarAreaSeries);
            
            this.radChartView1.Axes[0].LabelFitMode = AxisLabelFitMode.Rotate;
            AxisLabelElement gauche = this.radChartView1.Axes[0].Children[1] as AxisLabelElement;
            gauche.Text = "IV Gestion des ressources" + Environment.NewLine + "humaines";
            
          
              this.radChartView1.View.AxisLabelFormatting+=View_AxisLabelFormatting;
        }

        Font f = new Font("Arial", 10, FontStyle.Bold);

        private void View_AxisLabelFormatting(object sender, ChartAxisLabelFormattingEventArgs e)
        {
            if (e.LabelElement.Text.Contains("IV"))
            {
                e.LabelElement.Font = f;
            }
        }
1 2 3