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:
- 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 11:00 by ADMIN
To reproduce:
-  Show the legend and the add remove series at runtime.
- The legend items must not have text.
 
Completed
Last Updated: 06 Mar 2017 08:35 by ADMIN
To reproduce:
public RadForm1()
{
    InitializeComponent();
    date = DateTime.Now;
}
int dayCounter;
Random rnd = new Random();
DateTime date;


Timer timer = new Timer();
protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    LineSeries lineSeria = new LineSeries();
    DateTimeContinuousAxis continuousAxis = new DateTimeContinuousAxis();          
    continuousAxis.LabelFormat = "{0:dd}";
    lineSeria.HorizontalAxis = continuousAxis;
    radChartView1.Series.Add(lineSeria);

    for (int i = 0; i < 500; i++)
    {
        radChartView1.Series[0].DataPoints.Add(new CategoricalDataPoint(rnd.Next(1000), date.AddDays(dayCounter++)));
    }

    timer.Tick += timer_Tick;
    timer.Interval = 200;
    timer.Start();
}

void timer_Tick(object sender, EventArgs e)
{
    foreach (CategoricalDataPoint point in radChartView1.Series[0].DataPoints)
    {
       // point.Value = rnd.Next(1000);
        point.Category = date.AddDays(dayCounter++);
    }
}

Workaround:
void timer_Tick(object sender, EventArgs e)
{
    DateTimeContinuousAxis continuousAxis = ((LineSeries)radChartView1.Series[0]).HorizontalAxis as DateTimeContinuousAxis;

    HybridDictionary hashSet = typeof(Axis).GetField("hashSet", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(continuousAxis) as HybridDictionary;
    hashSet.Clear();

}

Completed
Last Updated: 03 Jan 2017 12:58 by ADMIN
To reproduce:
- Set the palette from the default context menu.
- Try to get the palette name.

Workaround:
class MyChartDataPointElementController : ChartDataPointElementController
{
    protected override RadContextMenu CreatePaletteMenu()
    {
        //return base.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);
        paletteItem.Items.Add(item);

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

        item = new RadMenuItem(localizationProvider.GetLocalizedString(RadChartStringId.PaletteSun));
        item.Click += new System.EventHandler(item_Click);
        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.Text);
            this.Area.View.Palette.Name = item.Text;
        }
    }
}

Change the controller like this:
 radChartView1.Controllers.Add(new MyChartDataPointElementController());
Unplanned
Last Updated: 15 Aug 2017 10:02 by ADMIN
Until the feature gets implemented please use the suggested solution here: http://www.telerik.com/support/kb/winforms/details/integrating-panzoom-trackball-and-lassozoom-controllers-in-radchartview
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: 03 Jul 2019 04:10 by ADMIN
Release R3 2018
To reproduce:
- Just add StochasticSlowIndicator to a chart.
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();
        }
    }
}

Completed
Last Updated: 12 Apr 2016 06:18 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: ChartView
Type: Bug Report
0

			
Unplanned
Last Updated: 15 Aug 2017 10:08 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: ChartView
Type: Feature Request
0
To reproduce:

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.BackColor = Color.Transparent;

areaSeries.CombineMode = ChartSeriesCombineMode.Stack;
AreaSeries areaSeries2 = new AreaSeries();
areaSeries2.DataPoints.Add(new CategoricalDataPoint(15, "Jan"));
areaSeries2.DataPoints.Add(new CategoricalDataPoint(25, "Apr"));
areaSeries2.DataPoints.Add(new CategoricalDataPoint(27, "Jul"));
areaSeries2.DataPoints.Add(new CategoricalDataPoint(18, "Oct"));
this.radChartView1.Series.Add(areaSeries2);
areaSeries2.CombineMode = ChartSeriesCombineMode.Stack;

 The area underneath the transparent one shouldn't be displayed in this case because they are stacked.  There is no area underneath the bottom layer to display. They are each STACKED on top of each other, they should not be layered in front of each other.
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);
}
Unplanned
Last Updated: 06 May 2016 08:02 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: ChartView
Type: Feature Request
0
Gets the range that is actually visible on the plot area when the chart is zoomed in.
Completed
Last Updated: 20 Oct 2016 10:43 by ADMIN
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: 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: 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: 19 Jul 2016 11:49 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
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
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);
    }
}