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.
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: 29 Mar 2016 11:04 by ADMIN
Workaround: use the ChartTrackerballController.TextNeeded event.
Approved
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();
        }
    }
}

Approved
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.
 
Approved
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;



Approved
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. 
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: 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;
Approved
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;
Approved
Last Updated: 29 Mar 2016 10:45 by ADMIN
To reproduce:
public RadForm1()
{
    InitializeComponent();

    LineSeries lineSeries = new LineSeries();
    lineSeries.DataPoints.Add(new CategoricalDataPoint(40, "Jan"));
    lineSeries.DataPoints.Add(new CategoricalDataPoint(22, "Apr"));
    lineSeries.DataPoints.Add(new CategoricalDataPoint(12, "Jul"));
    lineSeries.DataPoints.Add(new CategoricalDataPoint(19, "Oct"));
    lineSeries.ShowLabels = true;
    this.radChartView1.Series.Add(lineSeries);

    LineSeries lineSeries2 = new LineSeries();
    lineSeries2.DataPoints.Add(new CategoricalDataPoint(13, "Jan"));
    lineSeries2.DataPoints.Add(new CategoricalDataPoint(15, "Apr"));
    lineSeries2.DataPoints.Add(new CategoricalDataPoint(17, "Jul"));
    lineSeries2.DataPoints.Add(new CategoricalDataPoint(22, "Oct"));
    lineSeries2.ShowLabels = true;
    this.radChartView1.Series.Add(lineSeries2);

    ((CartesianArea)this.radChartView1.View.Area).ShowGrid = true;

    int i = 1;
    foreach (DataPointElement dpe in this.radChartView1.Series[0].Children)
    {
        dpe.IsVisible = false; AnimatedPropertySetting setting = new AnimatedPropertySetting();
        setting.StartValue = false;
        setting.EndValue = true;
        setting.Property = UIChartElement.IsVisibleProperty;
        setting.ApplyDelay = 40 + 40 * i;
        setting.NumFrames = 2;
        setting.ApplyValue(dpe); i++;
    }i = 1;
    foreach (DataPointElement dpe in this.radChartView1.Series[1].Children)
    {
        dpe.IsVisible = false; AnimatedPropertySetting setting = new AnimatedPropertySetting();
        setting.StartValue = false; setting.EndValue = true;
        setting.Property = UIChartElement.IsVisibleProperty;
        setting.ApplyDelay = 60 + 60 * i;
        setting.NumFrames = 2;
        setting.ApplyValue(dpe); i++;
    }
}

Workaround:
Perform the animation in the Shown event.
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: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:36 by ADMIN
To reproduce:
LineSeries dailySeries = new LineSeries();
dailySeries.BorderColor = Color.DarkBlue;
dailySeries.BorderWidth = 1;
dailySeries.PointSize = new SizeF(5, 5);
dailySeries.ShowLabels = true;

for (int i = 0; i < 100; i++)
{
    dailySeries.DataPoints.Add(new CategoricalDataPoint(rnd.Next(100), DateTime.Now.AddMonths(i)) { Label = "old" });
}

DateTimeCategoricalAxis categoricalAxis = new DateTimeCategoricalAxis();
categoricalAxis.DateTimeComponent = DateTimeComponent.Date;

categoricalAxis.MajorTickInterval = 10;

categoricalAxis.PlotMode = AxisPlotMode.OnTicks;
categoricalAxis.LabelFormat = "{0:MMM-yy}";
categoricalAxis.ClipLabels = false;
categoricalAxis.LastLabelVisibility = AxisLastLabelVisibility.Visible;

CartesianArea area = this.radChart.GetArea<CartesianArea>();
area.ShowGrid = true;
CartesianGrid grid = area.GetGrid<CartesianGrid>();
grid.DrawHorizontalFills = true;
grid.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.DashDot;

//First assign the axis to the VerticalAxis property and then add the series to the chart
dailySeries.HorizontalAxis = categoricalAxis;

this.radChart.Series.Add(dailySeries);

Workaround: 
Use different value for the MajorTickInterval.