Completed
Last Updated: 01 Jun 2015 08:15 by ADMIN
To reproduce:
Enable the smart labels and export the chart using custom size:
 this.radChartView1.ExportToImage(@"C:\df.png", new Size(1100,1100), System.Drawing.Imaging.ImageFormat.Png);

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

    protected override void Initialize()
    {
        base.Initialize();

        var area = this.View;

        SmartLabelsController smartController = null;
        for (int i = 0; i < area.View.Controllers.Count; i++)
        {
            smartController = area.View.Controllers[i] as SmartLabelsController;

            if (smartController != null)
            {
                RadRect viewport = area.View.Viewport;
                viewport.X -= area.View.Margin.Left;
                viewport.Y -= area.View.Margin.Top;
                viewport.Width += area.View.Margin.Horizontal;
                viewport.Height += area.View.Margin.Vertical;

                Rectangle plotArea = new Rectangle((int)viewport.X, (int)viewport.Y, (int)viewport.Width, (int)viewport.Height);
                smartController.CalculateLabelsPositions(area.View.Series, plotArea);

                break;
            }
        }
    }
}
// change like this 
void radChartView1_CreateRenderer(object sender, ChartViewCreateRendererEventArgs e)
{
    e.Renderer = new MyPieRenderer((PieArea)e.Area);
}
Completed
Last Updated: 22 May 2015 14:35 by ADMIN
To reproduce:
 protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            radChartView1 = new RadChartView();
            radChartView1.Parent = this;

            this.radChartView1.AreaType = ChartAreaType.Pie;
            PieSeries series = new PieSeries();
            series.DataPoints.Add(new PieDataPoint(50, "Germany"));
            series.DataPoints.Add(new PieDataPoint(70, "United States"));
            series.DataPoints.Add(new PieDataPoint(40, "France"));
            series.DataPoints.Add(new PieDataPoint(25, "United Kingdom"));
            series.ShowLabels = true;
            this.radChartView1.Series.Add(series);

            (series.Children[0] as PiePointElement).RadiusAspectRatio = 1.2f;
      }

Workaround:

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

            radChartView1 = new RadChartView();
            radChartView1.Parent = this;

            this.radChartView1.AreaType = ChartAreaType.Pie;
            PieSeries series = new PieSeries();
            series.DataPoints.Add(new PieDataPoint(50, "Germany"));
            series.DataPoints.Add(new PieDataPoint(70, "United States"));
            series.DataPoints.Add(new PieDataPoint(40, "France"));
            series.DataPoints.Add(new PieDataPoint(25, "United Kingdom"));
            series.ShowLabels = true;
            this.radChartView1.Series.Add(series);

            (series.Children[0] as PiePointElement).RadiusAspectRatio = 1.2f;

            this.radChartView1.CreateRenderer += new ChartViewCreateRendererEventHandler(radChartView1_CreateRenderer);
        }

        void radChartView1_CreateRenderer(object sender, ChartViewCreateRendererEventArgs e)
        {
            e.Renderer = new CustomPieRenderer(e.Area as PieArea);
        }

        public class CustomPieRenderer : PieRenderer
        {
            public CustomPieRenderer(PieArea area)
                : base(area)
            { }

            protected override void Initialize()
            {
                base.Initialize();

                for (int i = 0; i < this.DrawParts.Count; i++)
                {
                    PieSeriesDrawPart piePart = this.DrawParts[i] as PieSeriesDrawPart;
                    if (piePart != null)
                    {
                        this.DrawParts[i] = new CustomPieSeriesDrawPart((PieSeries)piePart.Element, this);
                    }
                }
            }

        }

        class CustomPieSeriesDrawPart : PieSeriesDrawPart
        {
            public CustomPieSeriesDrawPart(PieSeries series, IChartRenderer renderer)
                : base(series, renderer)
            {

            }

            public override void DrawSeriesParts()
            {
                //base.DrawSeriesParts();

                PieSeriesModel model = this.Element.Model as PieSeriesModel;
                float diameter = CalculateDiameter();

                if (diameter > 0)
                {
                    DrawPieSegments(model, diameter);
                }
            }

            private float CalculateDiameter()
            {
                PieSeriesModel model = this.Element.Model as PieSeriesModel;
                double diameter = Math.Min((float)model.LayoutSlot.Width, (float)model.LayoutSlot.Height) * ((PieSeries)Element).RadiusFactor;

                return (float)diameter;
            }

            private void DrawPieSegments(PieSeriesModel model, float diameter)
            {
                Graphics gr = ((PieRenderer)this.Renderer).Graphics;
                RadGdiGraphics radGraphics = new RadGdiGraphics(gr);

                for (int i = 0; i < model.DataPoints.Count; i++)
                {
                    PiePointElement childElement = (PiePointElement)this.Element.Children[i];
                    PieDataPoint piePoint = (PieDataPoint)childElement.DataPoint;

                    float finalDiameter = diameter * childElement.RadiusAspectRatio;
                    GraphicsPath path = ConstructGraphicsPath(piePoint, model.LayoutSlot, finalDiameter);
                    UpdatePointPaths(piePoint, path);
                    System.Drawing.RectangleF rect = GetPieSectionRect(piePoint, model.LayoutSlot, finalDiameter);

                    childElement.GradientAngle = (float)(piePoint.StartAngle + piePoint.SweepAngle / 2);
                    FillPrimitiveImpl fill = new FillPrimitiveImpl(childElement, null);
                    fill.PaintFill(radGraphics, path, rect);

                    BorderPrimitiveImpl border = new BorderPrimitiveImpl(childElement, null);
                    border.PaintBorder(radGraphics, null, path, rect);
                }
            }

            protected System.Drawing.RectangleF GetPieSectionRect(PieDataPoint point, RadRect modelLayoutSlot, float diameter)
            {
                System.Drawing.RectangleF result;

                float x = (float)(modelLayoutSlot.X + (modelLayoutSlot.Width - diameter) / 2);
                float y = (float)(modelLayoutSlot.Y + (modelLayoutSlot.Height - diameter) / 2);

                result = new System.Drawing.RectangleF(x, y, Math.Max(diameter, 1f), Math.Max(diameter, 1f));

                if (point.OffsetFromCenter > 0)
                {
                    System.Drawing.PointF offset = GetOffset(point.StartAngle + (point.SweepAngle / 2), (diameter / 2) * (point.OffsetFromCenter));
                    result.X += offset.X;
                    result.Y += offset.Y;
                }

                return result;
            }

            private System.Drawing.PointF GetOffset(double angle, double radius)
            {
                double angleInRad = angle * RadMath.DegToRadFactor;

                double x = (Math.Cos(angleInRad) * radius);
                double y = (Math.Sin(angleInRad) * radius);

                return new System.Drawing.PointF((float)x, (float)y);
            }
        }
Completed
Last Updated: 04 May 2015 07:53 by ADMIN
To reproduce: 
Add horizontal bar series bind to the following data:

myList = new BindingList<MyCustomObject>();
myList.Add(new MyCustomObject(1, "Outdoor"));
myList.Add(new MyCustomObject(0, "Hardware"));
myList.Add(new MyCustomObject(0, "Tools"));
myList.Add(new MyCustomObject(1, "Books"));
myList.Add(new MyCustomObject(1, "Appliances"));

Workaround:
LinearAxis verticalAxis = new LinearAxis();
verticalAxis.LabelFitMode = AxisLabelFitMode.Rotate;
verticalAxis.LabelRotationAngle = 0.1;
verticalAxis.Minimum = 0;
verticalAxis.Maximum = 2;
Completed
Last Updated: 21 Mar 2015 08:43 by ADMIN
Steps to reproduce:

1. Add a chart with bar series to a form

2. Set the border of the bars to be larger than 2px

You will see that bars are taller/longer with the border applied than they are without a border.
Completed
Last Updated: 20 Mar 2015 14:41 by ADMIN
Steps to reproduce:
1. Add a pie series to a chart 
2. add three data points with values 19,20 and 61
3. Set the series LabelsOffsetFromCenter property to 0.2d
4. Run the project and start reducing the size of the chart. At some point you will see that the position of the label 20% will be incorrect.

Second scenario:
Add a pie chart and populate it with PieDataPoints, one of which is with value 0:

        Me.RadChartView1.AreaType = ChartAreaType.Pie
        Dim series As New PieSeries()
        series.DataPoints.Add(New PieDataPoint(50, "Germany"))
        series.DataPoints.Add(New PieDataPoint(70, "United States"))
        series.DataPoints.Add(New PieDataPoint(40, "France"))
        series.DataPoints.Add(New PieDataPoint(25, "United Kingdom"))
        series.DataPoints.Add(New PieDataPoint(0, "Italy"))
        series.ShowLabels = True
        Me.RadChartView1.Series.Add(series)
Completed
Last Updated: 20 Mar 2015 14:25 by ADMIN
To reproduce:
BarSeries barSeries = new BarSeries("Performance", "RepresentativeName");
barSeries.Name = "Q1";
barSeries.DataPoints.Add(new CategoricalDataPoint(1000000, "Harley Harley Harley Harley Smith"));
barSeries.DataPoints.Add(new CategoricalDataPoint(2000000, "White"));
barSeries.DataPoints.Add(new CategoricalDataPoint(3000000, "Smith Smith Smith Smith Smith mith Smith Harley"));
barSeries.DataPoints.Add(new CategoricalDataPoint(4000000, "Jones"));
barSeries.DataPoints.Add(new CategoricalDataPoint(5000000, "Marshall"));
this.radChartView1.Series.Add(barSeries);

this.radChartView1.GetArea<CartesianArea>().Orientation = Orientation.Horizontal;

LinearAxis horizontalAxis = radChartView1.Axes.Get<LinearAxis>(1);
horizontalAxis.ClipLabels = false;


Workaround:
void radChartView1_CreateRenderer(object sender, ChartViewCreateRendererEventArgs e)
{
    e.Renderer = new CustomCartesianRenderer(e.Area as CartesianArea);
}
//
public class CustomCartesianRenderer : CartesianRenderer
{
    public CustomCartesianRenderer(CartesianArea area)
        : base(area)
    { }

    protected override void Initialize()
    {
        base.Initialize();

        for (int i = 0; i < this.DrawParts.Count; i++)
        {
            AxisLabelDrawPart part = this.DrawParts[i] as AxisLabelDrawPart;
            if (part != null)
            {
                this.DrawParts[i] = new CustomDrawPart((Axis)part.Element, this);
            }
        }
    }
}
public class CustomDrawPart : AxisLabelDrawPart
{
    public CustomDrawPart(Axis axis, IChartRenderer renderer) :base( axis,  renderer)
    {}
    protected override void DrawNoneAndMultiLineLabelElements()
    {
        //base.DrawNoneAndMultiLineLabelElements();
        if (!this.Element.ShowLabels || this.Element.Children.Count == 0)
        {
            return;
        }

        Graphics graphics = this.Renderer.Surface as Graphics;
        RadGdiGraphics radGraphics = new RadGdiGraphics(graphics);

        RadRect plotRect = this.Element.Model.LayoutSlot;
        plotRect.X += this.ViewportOffsetX;
        plotRect.Y += this.ViewportOffsetY;

        CartesianAxis axis = this.Element as CartesianAxis;
        SizeF offset = SizeF.Empty;

        if (axis != null)
        {
            offset = ((CartesianRenderer)this.Renderer).GetAxisOffset(axis);

            if (axis.ClipLabels)
            {
                SizeF size = graphics.MeasureString("W", this.Element.Font);

                RectangleF clipRect = ChartRenderer.ToRectangleF(plotRect);
                clipRect.Y -= size.Height / 2f;
                clipRect.Height += size.Height;
                clipRect.X -= size.Width;
                clipRect.Width += size.Width * 2f;
                clipRect.Offset(offset.ToPointF());

                graphics.SetClip(clipRect);
            }
        }

        using (SolidBrush brush = new SolidBrush(Color.Empty))
        {
            foreach (UIChartElement element in this.Element.Children)
            {
                AxisLabelElement labelElement = element as AxisLabelElement;

                if (labelElement == null || !labelElement.IsVisible)
                {
                    continue;
                }

                string text = labelElement.Text;

                if (string.IsNullOrEmpty(text))
                {
                    continue;
                }

                labelElement.OnAxisLabelFormatting(new ChartAxisLabelFormattingEventArgs(labelElement));
                RadRect slot = labelElement.GetLayoutSlot();

                if (this.Element is CartesianAxis)
                {
                    slot.X += this.ViewportOffsetX;
                    slot.Y += this.ViewportOffsetY;
                }

                if (this.Element.AxisType == AxisType.First)
                {
                    slot.X += (float)((IChartView)this.Element.View).PlotOriginX;
                }
                else
                {
                    slot.Y += (float)((IChartView)this.Element.View).PlotOriginY;
                }

                RectangleF rect = ChartRenderer.ToRectangleF(slot);

                if (axis != null)
                {
                    rect.Offset(offset.ToPointF());
                }

                if (labelElement.BackgroundShape != null)
                {
                    labelElement.BackgroundShape.Paint((Graphics)radGraphics.UnderlayGraphics, rect);
                }

                FillPrimitiveImpl fill = new FillPrimitiveImpl(labelElement, null);
                fill.PaintFill(radGraphics, 0, Size.Empty, rect);

                BorderPrimitiveImpl border = new BorderPrimitiveImpl(labelElement, null);
                border.PaintBorder(radGraphics, 0, Size.Empty, rect);

                if (brush.Color != labelElement.ForeColor)
                {
                    brush.Color = labelElement.ForeColor;
                }

                StringFormat sf = StringFormat.GenericTypographic;
                sf.Alignment = StringAlignment.Near;

                graphics.DrawString(text, labelElement.Font, Brushes.Black, rect.Location, sf);
            }
        }
    }
}
Completed
Last Updated: 17 Mar 2015 16:27 by ADMIN
Workaround:

public class CustomLassoZoomController : LassoZoomController
{
    protected override ActionResult OnMouseUp(MouseEventArgs e)
    {
        if (this.MouseDownLocation == Point.Empty || this.MouseMoveLocation == Point.Empty)
        {
            return Controller.Empty;
        }

        return base.OnMouseUp(e);
    }
}

public Form1()
{
    InitializeComponent();

    BarSeries barSeries = 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")); 
    this.radChartView1.Series.Add(barSeries);

    BarSeries barSeries2 = new BarSeries("Performance", "RepresentativeName");
    barSeries2.Name = "Q2";
    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);

    CustomLassoZoomController lassoZoomController = new CustomLassoZoomController();
    radChartView1.Controllers.Add(lassoZoomController);
}
Completed
Last Updated: 17 Mar 2015 16:09 by ADMIN
If one adds a RadChartView to a form and set its Visibility property to false or creates a chart in memory and tries to export it to an image the result would not look as expected.
Completed
Last Updated: 09 Mar 2015 10:54 by ADMIN
To reproduce:
- Add 3 series to an array and add them to the chart.
- Clear the chart series and add them back.
- All labels are removed from the chart.

Workaround:
- Create new series.
Completed
Last Updated: 12 Feb 2015 13:36 by ADMIN
Steps to reproduce:
1. Add chart to a form.
2. Add two bar series with CombineMode set to Stack100
3. Add two data points to the series with values 0.0 and identical category
4. Run the project an you will see an exception.
Declined
Last Updated: 10 Feb 2015 13:36 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 2
Category: ChartView
Type: Bug Report
0
To reproduce: use the following code snippet:

 Random rand = new Random();
 List<LineSeries> list = new List<LineSeries>();
 for (int i = 0; i < 15; i++)
 {
     LineSeries ls = new LineSeries();
     ls.LegendTitle = "Series" + i;
     list.Add(ls);
 }
 for (int i = 0; i < 1000; i++)
 {
     foreach (LineSeries s in list)
     {
         s.DataPoints.Add(new CategoricalDataPoint(i, rand.Next(0, rand.Next(5, 20))));
     }
 }
 radChartView1.Series.AddRange(list.ToArray());

 this.radChartView1.ChartElement.LegendPosition = LegendPosition.Bottom;
 this.radChartView1.ChartElement.LegendElement.StackElement.Orientation = Orientation.Horizontal;

Resolution: 
The issue is duplicated with item IMPROVE. RadChartView - ChartLegend should be able to wrap its items. From Q1 2015 when there are many items in the chart legend a scroll bar will appear so users can scroll through the items.
More info in the following feedback item http://feedback.telerik.com/Project/154/Feedback/Details/149848-add-radchartview-when-the-legend-has-many-items-a-scrollbar-should-appear

Completed
Last Updated: 10 Feb 2015 13:25 by ADMIN
The lasso controller does not zoom properly the vertical axis - the interval is not correct. 

Workaround: 
public class Lasso : LassoZoomController
{
    protected override ActionResult OnMouseUp(MouseEventArgs e)
    {
        if (e.Button != MouseButtons.Left)
        {
            return base.OnMouseUp(e);
        }

        if (MouseDownLocation != MouseMoveLocation)
        {
            Point point = (Point)typeof(LassoZoomController).GetMethod("ClipLocation", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(this, new object[] { e.Location });
            this.MouseMoveLocation = point;
            SizeF areaSize = SizeF.Empty;
            CartesianArea area = this.Area.View.GetArea<CartesianArea>();

            if (area != null)
            {
                IChartView chartView = this.Area.View;
                var temp = area.GetType().GetMethod("GetCartesianClipRect", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).Invoke(area, null);
                areaSize = ((RectangleF)temp).Size;
                double delta = this.Area.View.Viewport.Width - areaSize.Width + this.Area.View.Viewport.X;
                double start = ((this.MouseDownLocation.X - chartView.PlotOriginX - delta) / areaSize.Width / chartView.ZoomWidth) * 100;
                double end = (MouseMoveLocation.X - chartView.PlotOriginX - delta) / areaSize.Width / chartView.ZoomWidth * 100;
                double zoomFactor = 100d / Math.Abs(start - end);

                double deltaHeight = this.Area.View.Viewport.Height - areaSize.Height + this.Area.View.Viewport.Y;
                double startH = ((this.MouseDownLocation.Y - chartView.PlotOriginY - deltaHeight) / areaSize.Height / chartView.ZoomHeight) * 100;
                double endH = (MouseMoveLocation.Y - chartView.PlotOriginY - deltaHeight) / areaSize.Height / chartView.ZoomHeight * 100;
                double zoomFactorH = 100d / Math.Abs(startH - end);

                if (zoomFactor < 1d)
                {
                    zoomFactor = 1d;
                }

                if (zoomFactor > 100d)
                {
                    zoomFactor = 100d;
                }

                if (zoomFactorH < 1d)
                {
                    zoomFactorH = 1d;
                }

                if (zoomFactorH > 100d)
                {
                    zoomFactorH = 100d;
                }

                double pan = (((areaSize.Width - 1) * zoomFactor) / 100) * Math.Min(start, end);
                double panH = (((areaSize.Height - 1) * zoomFactorH) / 100) * Math.Min(startH, endH);

                this.Area.View.Zoom(zoomFactor, zoomFactorH);
                this.Area.View.Pan(-pan, -panH);
            }
        }

        ViewResult result = typeof(LassoZoomController).GetField("result", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue(this) as ViewResult;
        result.ShouldInvalidate = true;


        return new ViewResult() { ShouldInvalidate = true };
    }
}
Completed
Last Updated: 09 Feb 2015 07:29 by ADMIN
To reproduce:

BarSeries barSeries = 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"));
this.radChartView1.Series.Add(barSeries);
this.radChartView1.GetArea<CartesianArea>().Orientation = Orientation.Horizontal;
Completed
Last Updated: 02 Feb 2015 13:54 by ADMIN
To reproduce:
- Start the Q3 2014 SP1 demo application.
- Open the Bar example.
- Set the orientation to horizontal.

In addition please note that the first and the last labels of the horizontal axis are missing as well.

Workaround:

CategoricalAxis vertiacalAxis = radChartView1.Axes[1] as CategoricalAxis;

if (vertiacalAxis != null)
{
    vertiacalAxis.LabelFitMode = AxisLabelFitMode.Rotate;
    vertiacalAxis.LabelRotationAngle = .1;
}
Completed
Last Updated: 30 Jan 2015 13:48 by ADMIN
FIX. RadChartView - Vertical Stripes go out of the chart area when PanZoom is using.
Completed
Last Updated: 30 Jan 2015 13:18 by ADMIN
To reproduce:

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

this.Chart.AreaType = ChartAreaType.Pie;
this.Chart.ShowLegend = true;
PieSeries series = new PieSeries();
series.DataPoints.Add(new PieDataPoint(50, "Germany"));
series.DataPoints.Add(new PieDataPoint(70, "United States"));
series.DataPoints.Add(new PieDataPoint(40, "France"));
series.DataPoints.Add(new PieDataPoint(25, "United Kingdom"));
series.ShowLabels = true;
this.Chart.Series.Add(series);

Workaround:

Private Sub LegendElement_VisualItemCreating(sender As Object, e As LegendItemElementCreatingEventArgs)
    Dim pieElement As PiePointElement = DirectCast(e.LegendItem.Element, PiePointElement)
    Dim dataPoint As PieDataPoint = DirectCast(pieElement.DataPoint, PieDataPoint)
    e.LegendItem.Title = dataPoint.Name
End Sub
Completed
Last Updated: 30 Jan 2015 13:03 by ADMIN
Add BarSeries with several CategoricalDataPoint with some long category text. 
Change the chart's area orientation, then you will notice that the AxisLabelElements overlaps the axis
Completed
Last Updated: 28 Jan 2015 16:21 by ADMIN
To reproduce:


You need a RadChartView with some series. You need to add a new View - 


radChartView1.Views.AddNew("Bigger");


You also need to add a DrillDownController:


DrillDownController drillcontrol = new DrillDownController();
radChartView1.Controllers.Add(drillcontrol);
radChartView1.ShowDrillNavigation = true;


On the Drill event of RadChartView you need to reload the chart. This must clear the axes on the current view (determined by the drill level) and add new ones. You will see that the legend will not update. 


Additional details can be found in the attached project.


Workaround:


Re-add the legend items manually:


private void radChartView1_Drill(object sender, DrillEventArgs e)
{
    if (e.Level == 0)
        BiggerView = false;
    else
        BiggerView = true;


    ReloadChart();

    this.radChartView1.ChartElement.LegendElement.StackElement.Children.Clear();
    ChartView currentView = this.radChartView1.Views[BiggerView ? 1 : 0];
    foreach (ChartSeries series in currentView.Series)
    {
        LegendItem item = new LegendItem(series)
        {
            Title = series.Name
        };


        LegendItemElement element = new LegendItemElement(item);
        this.radChartView1.ChartElement.LegendElement.StackElement.Children.Add(element);
    }
}


Completed
Last Updated: 28 Jan 2015 13:49 by ADMIN
Completed
Last Updated: 28 Jan 2015 13:33 by ADMIN
Create a chart with a LinesSeries with a DateTimeContinuousAxis axis and set the following properties:
DateTimeContinuousAxis horizontalAxis = new DateTimeContinuousAxis();
horizontalAxis.Title = tupleItem.HorizontalAxis;
horizontalAxis.AxisType = AxisType.First;
horizontalAxis.VerticalLocation = AxisVerticalLocation.Bottom;
horizontalAxis.AutomaticBorderColor = false;
horizontalAxis.MaximumTicks = 10;
horizontalAxis.LabelFormat = "{0:HH:mm:ss.fff}";

You will see that there are less labels than ticks.

When the chart is zoomed the labels also disappear from the ticks.