Unplanned
Last Updated: 19 Aug 2016 11:55 by ADMIN
Steps to reproduce: 
1. Add RadChartView with two BarSeries 
2. Set the Name property of series 
3. Set the SelectionMode property to SingleDataPoint
4. Subscribe to the SelectedPointChanging/SelectedPointChanged events. 
5. Run the form and select points from different series. The OldSelectedSeries/NewSelectedSeries properties always return the name of the first series now matter which series is selected. 

Workaround: 
void radChartView1_SelectedPointChanged(object sender, ChartViewSelectedPointChangedEventArgs e)
{
    BarSeries series = (e.NewSelectedPoint).Presenter as BarSeries;

    if (series.Name == "Q1")
    {
        Console.WriteLine(series.Name);
    }
    else if (series.Name == "Q2")
    {
        Console.WriteLine(series.Name);
    }
}
Completed
Last Updated: 19 Aug 2016 09:29 by ADMIN
To reproduce:

LineSeries lineSeries = new LineSeries();
lineSeries.DataPoints.Add(new CategoricalDataPoint(20, "Jan"));
lineSeries.DataPoints.Add(new CategoricalDataPoint(22, "Apr"));
lineSeries.DataPoints.Add(new CategoricalDataPoint(12, "Jul"));
lineSeries.DataPoints.Add(new CategoricalDataPoint(19, "Oct"));
lineSeries.LegendTitle = "Series A asdafsafasfd fgsdfg sdfs dfg dafsvsd";
this.radChartView1.Series.Add(lineSeries);
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 = "Series B sdf asdf adfasdfas dfadsf asdf sadf awef";
this.radChartView1.Series.Add(lineSeries2);
LineSeries lineSeries3 = new LineSeries();
lineSeries3.DataPoints.Add(new CategoricalDataPoint(13, "Jan"));
lineSeries3.DataPoints.Add(new CategoricalDataPoint(14, "Apr"));
lineSeries3.DataPoints.Add(new CategoricalDataPoint(12, "Jul"));
lineSeries3.DataPoints.Add(new CategoricalDataPoint(25, "Oct"));
lineSeries3.LegendTitle = "Series C sdf asdf adfasdfas dfadsf asdf sadf awef";
this.radChartView1.Series.Add(lineSeries3);

this.radChartView1.ShowLegend = true;
this.radChartView1.ChartElement.LegendPosition = Telerik.WinControls.UI.LegendPosition.Bottom;
radChartView1.ChartElement.LegendElement.StackElement.Orientation = Orientation.Horizontal;

Workaround: specify minimum height for the legend

radChartView1.ChartElement.LegendElement.MinSize = new Size(0, 50);
Completed
Last Updated: 15 Aug 2016 10:06 by ADMIN
To reproduce: 
- Add two donut series and set their RadiusFactor so both series can be seen.
- Add ChartSelectionController.
- You will be able to select points from the firs series only. 

Workaround:
class MyPieRenderer : PieRenderer
{
    public MyPieRenderer(PieArea area) : base(area)
    {
    }

    public override DataPoint HitTest(int x, int y)
    {
        if (this.DrawParts.Count > 0)
        {
            foreach (var item in this.DrawParts)
            {
                if (item is PieSeriesDrawPart)
                {
                    Dictionary<PieDataPoint, GraphicsPath> paths = ((PieSeriesDrawPart)item).PointPaths;

                    foreach (PieDataPoint point in paths.Keys)
                    {
                        GraphicsPath path = new GraphicsPath();
                        paths.TryGetValue(point, out path);

                        if (path != null)
                        {
                            if (path.IsVisible(x, y))
                            {
                                return point;
                            }
                        }
                    }
                }
            }
        }
        return null;
    }
}
private void RadChartView1_CreateRenderer(object sender, ChartViewCreateRendererEventArgs e)
{
    e.Renderer = new MyPieRenderer((PieArea)e.Area);
}
Completed
Last Updated: 05 Aug 2016 12:45 by ADMIN
To reproduce:
- Add DateTimeContinuousAxis to a chart and set its MajorStep property.

Workaround:
Create the DateTimeContinuousAxis in the code behind.
Completed
Last Updated: 19 Jul 2016 11:49 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 0
Category: ChartView
Type: Bug Report
0
To reproduce:

Public Sub New()
    InitializeComponent()

    Me.RadChartView1.ShowTitle = True
    Me.RadChartView1.ChartElement.TitleElement.TextWrap = True
    Me.RadChartView1.Title = "This is a very long chart title that can't fit in a single line"

    Dim barSeries As New BarSeries("Performance", "RepresentativeName")
    barSeries.Name = "Q1"
    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"))
    Me.RadChartView1.Series.Add(barSeries)
End Sub

Private Sub radButton1_Click(sender As Object, e As EventArgs) Handles RadButton1.Click 
    Dim filePath As String = "..\..\..\exprtedChart.png"
    Me.RadChartView1.ExportToImage(filePath, Me.RadChartView1.Size, System.Drawing.Imaging.ImageFormat.Png)
    Process.Start(filePath)
End Sub


Workaround: titleSize must consider the chart's width

Public Sub New()
    InitializeComponent()
    AddHandler Me.RadChartView1.CreateRenderer, AddressOf CreateRenderer
    Me.RadChartView1.ShowTitle = True
    Me.RadChartView1.ChartElement.TitleElement.TextWrap = True
    Me.RadChartView1.Title = "This is a very long chart title that can't fit in a single line"

    Dim barSeries As New BarSeries("Performance", "RepresentativeName")
    barSeries.Name = "Q1"
    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"))
    Me.RadChartView1.Series.Add(barSeries)
End Sub

Private Sub radButton1_Click(sender As Object, e As EventArgs) Handles RadButton1.Click
    Dim filePath As String = "..\..\..\exprtedChart.png"
    Using fs As New FileStream(filePath, FileMode.Create, FileAccess.Write)
        ExportToImage(Me.RadChartView1, fs, Me.RadChartView1.Size, System.Drawing.Imaging.ImageFormat.Png)
    End Using
    Process.Start(filePath)
End Sub

Public Sub ExportToImage(chart As RadChartView, stream As Stream, size As Size, imageFormat As ImageFormat)
    If Not chart.IsLoaded Then
        chart.LoadElementTree()
    End If

    Dim bmp As New Bitmap(size.Width, size.Height)
    Dim graphics__1 As Graphics = Graphics.FromImage(bmp)
    graphics__1.Clear(Color.White)

    Dim titleSize As SizeF = graphics__1.MeasureString(chart.Title, chart.ChartElement.TitleElement.Font, chart.Width)

    If chart.ChartElement.TitleElement.TextOrientation = Orientation.Vertical Then
        Dim swap As Single = titleSize.Height
        titleSize.Height = titleSize.Width
        titleSize.Width = swap
    End If

    Dim titleRect As New RadRect(0, 0, titleSize.Width, titleSize.Height)
    Dim legendRect As New RadRect(0, 0, size.Width, size.Height)
    Dim chartRect As RadRect = legendRect

    Select Case chart.ChartElement.TitlePosition
        Case TitlePosition.Top, TitlePosition.Bottom
            titleRect.Width = size.Width
            Exit Select
        Case TitlePosition.Right, TitlePosition.Left
            titleRect.Height = size.Height
            Exit Select
    End Select

    chartRect.X += chart.View.Margin.Left
    chartRect.Y += chart.View.Margin.Top
    chartRect.Width -= chart.View.Margin.Horizontal
    chartRect.Height -= chart.View.Margin.Vertical

    If chart.ShowTitle Then
        Select Case chart.ChartElement.TitlePosition
            Case TitlePosition.Top
                legendRect.Y += titleRect.Height
                chartRect.Y += titleRect.Height
                legendRect.Height -= titleRect.Height
                chartRect.Height -= titleRect.Height
                Exit Select
            Case TitlePosition.Right
                titleRect.X = size.Width - chart.ChartElement.TitleElement.Size.Width
                titleRect.Height = size.Height
                legendRect.Width -= titleRect.Width
                chartRect.Width -= titleRect.Width
                Exit Select
            Case TitlePosition.Bottom
                titleRect.Y = size.Height - chart.ChartElement.TitleElement.Size.Height
                titleRect.Width = size.Width
                legendRect.Height -= titleRect.Height
                chartRect.Height -= titleRect.Height
                Exit Select
            Case TitlePosition.Left
                titleRect.Height = size.Height
                legendRect.X += titleRect.Width
                chartRect.X += titleRect.Width
                legendRect.Width -= titleRect.Width
                chartRect.Width -= titleRect.Width
                Exit Select
        End Select
    End If

    If chart.ShowLegend Then
        Select Case chart.ChartElement.LegendPosition
            Case LegendPosition.Right
                If chart.ChartElement.TitlePosition = TitlePosition.Right Then
                    legendRect.X = titleRect.X - chart.ChartElement.LegendElement.Size.Width
                Else
                    legendRect.X = size.Width - chart.ChartElement.LegendElement.Size.Width
                End If

                legendRect.Width = chart.ChartElement.LegendElement.Size.Width
                chartRect.Width -= legendRect.Width + chart.View.Margin.Right
                Exit Select
            Case LegendPosition.Bottom
                If chart.ChartElement.TitlePosition = TitlePosition.Bottom Then
                    legendRect.Y = titleRect.Y - chart.ChartElement.LegendElement.Size.Height
                Else
                    legendRect.Y = size.Height - chart.ChartElement.LegendElement.Size.Height
                End If

                legendRect.Height = chart.ChartElement.LegendElement.Size.Height
                chartRect.Height -= legendRect.Height
                Exit Select
            Case LegendPosition.Left
                legendRect.Width = chart.ChartElement.LegendElement.Size.Width
                chartRect.X += legendRect.Width + chart.View.Margin.Left
                chartRect.Width -= legendRect.Width + chart.View.Margin.Left
                Exit Select
            Case LegendPosition.Top
                legendRect.Height = chart.ChartElement.LegendElement.Size.Height
                chartRect.Y += legendRect.Height
                chartRect.Height -= legendRect.Height
                Exit Select
            Case LegendPosition.Float
                legendRect.Width = chart.ChartElement.LegendElement.Size.Width
                legendRect.Height = chart.ChartElement.LegendElement.Size.Height
                Dim xRatio As Double = size.Width / Me.Size.Width
                Dim yRatio As Double = size.Height / Me.Size.Height
                legendRect.X = (chart.ChartElement.LegendOffset.X * xRatio) + (If((chart.ChartElement.TitlePosition = TitlePosition.Left), titleRect.Right, 0.0))
                legendRect.Y = (chart.ChartElement.LegendOffset.Y * yRatio) + (If((chart.ChartElement.TitlePosition = TitlePosition.Top), titleRect.Bottom, 0.0F))
                Exit Select
        End Select
    End If

    If chart.ShowLegend Then
        Dim xTransform As Single = CSng(legendRect.X) - chart.ChartElement.LegendElement.ControlBoundingRectangle.X + _
        (CSng(legendRect.Width) - chart.ChartElement.LegendElement.ControlBoundingRectangle.Width) / 2.0F
        Dim yTransform As Single = CSng(legendRect.Y) - chart.ChartElement.LegendElement.ControlBoundingRectangle.Y + _
        (CSng(legendRect.Height) - chart.ChartElement.LegendElement.ControlBoundingRectangle.Height) / 2.0F
        graphics__1.TranslateTransform(xTransform, yTransform)
        chart.ChartElement.LegendElement.Paint(New RadGdiGraphics(graphics__1), _
                                               chart.ChartElement.LegendElement.ControlBoundingRectangle, 0.0F, New SizeF(1.0F, 1.0F), True)
        graphics__1.ResetTransform()
    End If

    Dim radGraphics As New RadGdiGraphics(graphics__1)

    If chart.ShowTitle Then
        radGraphics.DrawString(chart.Title, GetTitleDrawRectangle(ChartRenderer.ToRectangleF(titleRect), _
                                                                  titleSize, chart.ChartElement.TitleElement.TextAlignment), chart.ChartElement.TitleElement.Font, _
                               chart.ChartElement.TitleElement.ForeColor, chart.ChartElement.TitleElement.TextParams.CreateStringFormat(), _
                               chart.ChartElement.TitleElement.TextOrientation, _
                               chart.ChartElement.TitleElement.FlipText)
    End If

    chart.View.Layout(chartRect)
    renderer.Draw(graphics__1)

    bmp.Save(stream, imageFormat)
    chart.View.Layout()
End Sub

Private Function GetTitleDrawRectangle(drawArea As RectangleF, textRect As SizeF, textAlignment As ContentAlignment) As RectangleF
    Select Case textAlignment
        Case ContentAlignment.BottomCenter
            Return New RectangleF(New PointF(drawArea.X + (drawArea.Width - textRect.Width) / 2.0F, drawArea.Bottom - textRect.Height), textRect)
        Case ContentAlignment.BottomLeft
            Return New RectangleF(New PointF(drawArea.X, drawArea.Bottom - textRect.Height), textRect)
        Case ContentAlignment.BottomRight
            Return New RectangleF(New PointF(drawArea.Right - textRect.Width, drawArea.Bottom - textRect.Height), textRect)
        Case ContentAlignment.MiddleCenter
            Return New RectangleF(New PointF(drawArea.X + (drawArea.Width - textRect.Width) / 2.0F, drawArea.Y + (drawArea.Height - textRect.Height) / 2.0F), textRect)
        Case ContentAlignment.MiddleLeft
            Return New RectangleF(New PointF(drawArea.X, drawArea.Y + (drawArea.Height - textRect.Height) / 2.0F), textRect)
        Case ContentAlignment.MiddleRight
            Return New RectangleF(New PointF(drawArea.Right - textRect.Width, drawArea.Y + (drawArea.Height - textRect.Height) / 2.0F), textRect)
        Case ContentAlignment.TopCenter
            Return New RectangleF(New PointF(drawArea.X + (drawArea.Width - textRect.Width) / 2, drawArea.Y), textRect)
        Case ContentAlignment.TopLeft
            Return New RectangleF(drawArea.Location, textRect)
        Case ContentAlignment.TopRight
            Return New RectangleF(New PointF(drawArea.Right - textRect.Width, drawArea.Y), textRect)
        Case Else
            Return New RectangleF(drawArea.Location, textRect)
    End Select
End Function

Dim renderer As CartesianRenderer
Private Sub CreateRenderer(sender As Object, e As ChartViewCreateRendererEventArgs)
    e.Renderer = New CartesianRenderer(DirectCast(e.Area, CartesianArea))
    renderer = e.Renderer
End Sub
Completed
Last Updated: 11 Jul 2016 13:18 by ADMIN
To reproduce:
- Enable the Trackball
- Use the following code:
public RadForm1()
{
    InitializeComponent();

    ScatterLineSeries sls = radChartView1.Series[0] as ScatterLineSeries;
    sls.XValueMember = "X";
    sls.YValueMember = "Y";
}

private void timer1_Tick(object sender, EventArgs e)
{
    DataTable dt = new DataTable();
    dt.Columns.Add("X", typeof(double));
    dt.Columns.Add("Y", typeof(double));

    Random ran = new Random();
    for (int i = 0; i < 100; i++)
        dt.Rows.Add(i, 1 + ran.NextDouble() / 10);

    radChartView1.Series[0].DataSource = dt;
}

Workaround:
class MyChartTrackballController : ChartTrackballController
{
    protected override string GetPointText(DataPoint point)
    {
        ChartSeries series = point.Presenter as ChartSeries;
        if (series == null)
        {
            return string.Empty;
        }
        return base.GetPointText(point);
    }
}
Completed
Last Updated: 16 Jun 2016 06:03 by ADMIN
ADMIN
Created by: Dimitar
Comments: 0
Category: ChartView
Type: Bug Report
0
To reproduce:
LegendItem item = new LegendItem();
item.Element.BorderColor = Color.Black;
item.Element.BackColor = Color.Yellow;
item.Title = "Custom item";
this.radChartView1.ChartElement.LegendElement.Items.Add(item);

Workaround:
class MyLegendItem : LegendItem
{
    string title = "";
    protected override void SetLegendTitle(string title)
    {
        base.SetLegendTitle(title);
         
        if (this.Element is LegendItemStyleElement)
        {
            this.title = title;
        }
    }
    protected override string GetLegendTitle()
    {
        if (this.Element is LegendItemStyleElement)
        {
           return title;
        }
        return base.GetLegendTitle();

    }
}
Completed
Last Updated: 20 May 2016 10:54 by ADMIN
To reproduce:
- Localize the palette names with the localization provider.
- Change the palette with the context menu.

Workaround:
class MyChartDataPointElementController : ChartDataPointElementController
{
    protected override RadContextMenu CreatePaletteMenu()
    {
        RadContextMenu menu = new RadContextMenu();

        RadChartLocalizationProvider localizationProvider = RadChartLocalizationProvider.CurrentProvider;

        RadMenuItem paletteItem = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.Palette));

        menu.Items.Add(paletteItem);

        RadMenuItem item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteArctic));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Arctic";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteAutumn));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Autumn";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteCold));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Gold";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteFlower));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Flower";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteForest));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Forest";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteGrayscale));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Grayscale";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteGround));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Ground";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteLilac));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Lilac";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteMetro));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Metro";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteNatural));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Natural";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PalettePastel));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Pastel";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteRainbow));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Rainbow";
        paletteItem.Items.Add(item);


        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteSpring));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Spring";
        paletteItem.Items.Add(item);


        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteSummer));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Summer";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteWarm));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Warm";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteWindows8));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Windows8";
        paletteItem.Items.Add(item);

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteSun));
        item.Click += new System.EventHandler(item_Click);
        item.Tag = "Sun";
        paletteItem.Items.Add(item);

        return menu;
    }

    void item_Click(object sender, System.EventArgs e)
    {
        RadMenuItem item = sender as RadMenuItem;
        if (item != null)
        {
            this.Area.View.Palette = ChartPalette.FromKnownPalette(item.Tag.ToString());
        }
    }
}

// change the controller

this.radChartView1.Controllers.Add(new MyChartDataPointElementController());
Completed
Last Updated: 12 Apr 2016 06:18 by ADMIN
Completed
Last Updated: 12 Apr 2016 06:07 by ADMIN
To reproduce: 
- Use the attached file to reproduce.

Workaround:
- Reset the chart data source:
THIS-OBJECT:radChartView1:DataSource = ?.
THIS-OBJECT:radChartView1:DataSource = THIS-OBJECT:bindingSource1.
Unplanned
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;
}
Unplanned
Last Updated: 29 Mar 2016 11:04 by ADMIN
Workaround: use the ChartTrackerballController.TextNeeded event.
Unplanned
Last Updated: 29 Mar 2016 11:03 by ADMIN
To reproduce:
- Implement the drill down functionality with a PieSeries.

- Workaround:
class MyPieSeries : PieSeries, ILegendInfoProvider
{
    public LegendItemCollection LegendInfos
    {
        get
        {
            return new LegendItemCollection();
        }
    }
}

Unplanned
Last Updated: 29 Mar 2016 11:00 by ADMIN
To reproduce:
-  Show the legend and the add remove series at runtime.
- The legend items must not have text.
 
Unplanned
Last Updated: 29 Mar 2016 10:59 by ADMIN
To reproduce:
- Add three line series and only set their point size.
- At runtime remove the second series.
- The points color is not updated corectly.

Workaround
- Set colors in code like this:
lineSerie1.BorderColor = Color.Red;
lineSerie1.BackColor = Color.Red;

lineSerie2.BackColor = Color.Green;
lineSerie2.BorderColor = Color.Green;

lineSerie3.BackColor = Color.Blue;
lineSerie3.BorderColor = Color.Blue;



Unplanned
Last Updated: 29 Mar 2016 10:59 by ADMIN
To reproduce: 
1. Add RadChartView with drill down and two RadCheckBox on the form
2. Subscribe to the ToggleStateChanged event of RadCheckBox and set the IsVisible property to true/false 
3. In handler of DrillDown event set the series`s IsVisible property to be equal to checkbox`s Checked property
4. In few cases the series are not visible when changing the IsVisible property and view. 

Unfortunately due to the nature of the issue we cannot provide a workaround for it. 
Unplanned
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);
    }

   
}


Unplanned
Last Updated: 29 Mar 2016 10:58 by ADMIN
To reproduce:
- Add a pie chart using the property builder and set the palette as well.

Workaround
- Set the palette in code:
 this.radChartView1.Area.View.Palette = KnownPalette.Metro;
Unplanned
Last Updated: 29 Mar 2016 10:58 by ADMIN
To reproduce:
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"));

for (int i = 0; i < 50; i++)
{
    series.DataPoints.Add(new PieDataPoint(1, "Item " + i));
}

series.ShowLabels = true;
series.DrawLinesToLabels = true;
this.radChartView1.Series.Add(series);
 this.radChartView1.ShowSmartLabels = true;