Unplanned
Last Updated: 03 Jan 2017 20:56 by ADMIN
ADMIN
Created by: Martin Ivanov
Comments: 0
Category: ChartView
Type: Feature Request
3
Implement polygon line annotation in the PolarChart
Unplanned
Last Updated: 03 Jan 2017 21:09 by Telerik Admin
If you visualize the horizontal grid lines and use CartesianCustomLineAnnotation to differentiate the 0 horizontal line, the annotation is rendered above the 0 grid line. The annotation should be snapped to the 0 thick of the vertical axis.

As a workaround CartesianGridLineAnnotation could be used.
Unplanned
Last Updated: 03 Jan 2017 20:55 by Telerik Admin
If you use SmartLabelsStrategy in combination with LabelDefinitions to enlarge the font of the labels. Then some labels are overlapping.
Unplanned
Last Updated: 03 Jan 2017 20:53 by ADMIN
The CartesianGridLineAnnotation's label is not displayed initially when it uses a LabelDefinition with custom Template. The annotation displays after resize of the chart (or after another layout pass).

Subscribe for PanOffsetChanged event of the chart control and reset the LabelDefinition of the annotations if they just appeared in the viewport. Here is an example for a possible appraoch for achieveing this:

private bool isInVisibleRange = false;
void chart_PanOffsetChanged(object sender, ChartPanOffsetChangedEventArgs e)
{
    foreach (CartesianGridLineAnnotation annotation in this.chart.Annotations)
    {
        if (double.Parse(annotation.Value.ToString()) >= this.verticalAxis.ActualVisibleRange.Minimum &&
            double.Parse(annotation.Value.ToString()) <= this.verticalAxis.ActualVisibleRange.Maximum)
        {
            if (!this.isInVisibleRange)
            {
                // code below resets the label definition of the annotation which triggers an update of its layout
                var definition = annotation.LabelDefinition;
                annotation.LabelDefinition = new ChartAnnotationLabelDefinition();
                annotation.LabelDefinition = definition;
 
                this.isInVisibleRange = true;
            }
             
        }
        else
        {
            this.isInVisibleRange = false;
        }
    }
}