http://www.telerik.com/help/wpf/common-export-support.html Resolution: Add an option to export the chart to an image or a stream using the ExportToImage methods.
Add vertical cursors for Line series that stay in place unless the user drags them. Each cursor should select the data points that covers. The cursor should allow setting its position programmatically.
Currently values can only increase from left to right and from bottom to top.
http://www.telerik.com/help/winforms/chart-features-marked-zones.html
Steps to reproduce: 1. Add a chart to a form. 2. Add any cartesian series 3. Set the LabelFitMode of the horizontal axis to Rotate. You will see that labels have incorrect layout.
IMPROVE. RadChartView - one should be able to access the tooltip instance in order to customize it (change font, delay, etc)
Currently RadChartView does not support null values.
To reproduce: - Add at least two series and zoom the chart so the point from one of the series are visible only - Move the TrackBall - The Track ball is not shown for some of the points.
Add print functionality
One should be able to add annotations at certain positions within RadChartView.
I'm using version 2012.3.1310.40 I use ChartView to create a pie chart with the following data Assets 2248550.22 Income 19748.67 Equity 2228253.95 Liability 547.60 So, when the chart displays, the Percentage is set as follows: Assets 50% Income 0% Equity 50% Liability 0% I notice when the percentage is 0% for any data, the pie chart shows "0%" near the chart title (please see attachment). Or if the calculated data returns 0, it doesn't show any percentage on the chart, but it will shows "NaN" near the title as well. (please see attachment).
To reproduce: public Form1() { InitializeComponent(); ScatterSeries series = new ScatterSeries(); series.DataPoints.Add(new ScatterDataPoint(5, 5)); series.DataPoints.Add(new ScatterDataPoint(4, 2)); series.DataPoints.Add(new ScatterDataPoint(-1, 3)); series.DataPoints.Add(new ScatterDataPoint(8, 4)); radChartView1.Series.Add(series); LinearAxis horizontalAxis = radChartView1.Axes.Get<LinearAxis>(0); horizontalAxis.Minimum = -10; horizontalAxis.Maximum = 10; } private void radButton1_Click(object sender, EventArgs e) { LinearAxis horizontalAxis = radChartView1.Axes.Get<LinearAxis>(0); horizontalAxis.DesiredTickCount = 20; }
This problem is related to different serie types are added to the chartview
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); }
Note: similar to the axis, the series should also have ClipLabels property which will control whether the labels will be clipped or not. How to reproduce: zoom and pan along the chart public Form1() { InitializeComponent(); this.radChartView1.CreateRenderer += radChartView1_CreateRenderer; this.radChartView1.ShowPanZoom = true; BarSeries barSeries = new BarSeries(); Random rand = new Random(); for (int i = 1; i < 10; i++) { barSeries.DataPoints.Add(new CategoricalDataPoint(rand.Next(100), i)); } barSeries.ShowLabels = true; this.radChartView1.Series.Add(barSeries); } Workaround: public partial class Form1 : Form { public Form1() { InitializeComponent(); this.radChartView1.CreateRenderer += radChartView1_CreateRenderer; this.radChartView1.ShowPanZoom = true; BarSeries barSeries = new BarSeries(); Random rand = new Random(); for (int i = 1; i < 10; i++) { barSeries.DataPoints.Add(new CategoricalDataPoint(rand.Next(100), i)); } barSeries.ShowLabels = true; this.radChartView1.Series.Add(barSeries); } private 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++) { BarLabelElementDrawPart labelPart = this.DrawParts[i] as BarLabelElementDrawPart; if (labelPart != null) { this.DrawParts[i] = new CustomLabelElementDrawPart((BarSeries)labelPart.Element, this); } } } } public class CustomLabelElementDrawPart : BarLabelElementDrawPart { public CustomLabelElementDrawPart(ChartSeries owner, IChartRenderer renderer) : base(owner, renderer) { } public override void Draw() { Graphics graphics = this.Renderer.Surface as Graphics; CartesianSeries cartesianSeries = this.Element as CartesianSeries; if (cartesianSeries != null) { CartesianArea area = (CartesianArea)cartesianSeries.GetType().GetField("area", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(cartesianSeries); RectangleF clipRect = (RectangleF)area.GetType().GetMethod("GetCartesianClipRect", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(area, new object[] { });//.GetCartesianClipRect(); graphics.SetClip(clipRect); } base.Draw(); graphics.ResetClip(); } }
Add RightToLeft support in DrillDownNavigator.
Steps to reproduce: 1. Create an instance of any chart series 2. Set the Palette property to a new/existing PaletteEntry instance with any colors Run the project and you will see an exception.
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.
Add Scatter area series support for RadChartView.
Currently only axes labels can be rotated. There should be a way to rotate series labels as well. Resolution: Set the LabelRotationAngle property of the series to preferred angle.