Steps to reproduce: 1. On a button click create a chart, add series and a data source. 2. Call the Dispose method of the chart. You will notice that the memory allocated by the chart will not be released Workaround: clear the series before you dispose of the chart.
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);
}
}
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);
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);
}
To reproduce: - Add DateTimeContinuousAxis to a chart and set its MajorStep property. Workaround: Create the DateTimeContinuousAxis in the code behind.
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
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);
}
}
Note: when you apply a palette the series doesn't have hover and selection indication.
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();
}
}
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());
Why exists the Crosshair feature only for the WPF version of the RadChartView and not for the WinForms implementation? Is there a plan to release that feature for WinForms too? Thx in advance Uli
Gets the range that is actually visible on the plot area when the chart is zoomed in.
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.
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;
}
Workaround: use the ChartTrackerballController.TextNeeded event.
To reproduce:
- Implement the drill down functionality with a PieSeries.
- Workaround:
class MyPieSeries : PieSeries, ILegendInfoProvider
{
public LegendItemCollection LegendInfos
{
get
{
return new LegendItemCollection();
}
}
}
To reproduce: - Show the legend and the add remove series at runtime. - The legend items must not have text.
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;