public override TKChartPointLabel LabelForDataPoint(TKChart chart, TKChartData dataPoint, string propertyName, TKChartSeries series, nuint dataIndex) { // If it's a BarSeries use vertical label if (series is TKChartColumnSeries) { if (this.rotateLabels) { return(CreateVerticalLabel(series, (TKChartDataPoint)dataPoint)); } else { return(CreateHorizontalLabel(series, (TKChartDataPoint)dataPoint)); } } if (series is TKChartDonutSeries) { return(CreateDonutLabel(series, (TKChartDataPoint)dataPoint)); } if (series is TKChartPieSeries) { return(CreatePieLabel(series, (TKChartDataPoint)dataPoint)); } // use horizontal label for everything else return(CreateHorizontalLabel(series, (TKChartDataPoint)dataPoint)); }
public override void PointDeselected(TKChart chart, TKChartData point, TKChartSeries series, nint index) { if (this.labelRender != null) { this.labelRender.SelectedDataPoint = -1; } }
public override void PointSelected (TKChart chart, TKChartData point, TKChartSeries series, nint index) { if (this.labelRender != null) { this.labelRender.SelectedSeries = (int)series.Index; this.labelRender.SelectedDataPoint = index; } }
public override void PointSelected(TKChart chart, TKChartData point, TKChartSeries series, nint index) { if (this.labelRender != null) { this.labelRender.SelectedSeries = (int)series.Index; this.labelRender.SelectedDataPoint = index; } }
public override TKChartPointLabel LabelForDataPoint (TKChart chart, TKChartData dataPoint, string propertyName, TKChartSeries series, nuint dataIndex) { TKChartDataPoint point = (TKChartDataPoint)dataPoint; if (series.Index == (nuint)this.selectedSeriesIndex && dataIndex == (nuint)this.selectedDataPointIndex) { return new MyPointLabel (point, series, String.Format ("{0}", point.DataYValue)); } return new TKChartPointLabel (point, series, String.Format ("{0}", point.DataYValue)); }
public override TKChartPointLabel LabelForDataPoint(TKChart chart, TKChartData dataPoint, string propertyName, TKChartSeries series, nuint dataIndex) { TKChartDataPoint point = (TKChartDataPoint)dataPoint; if (series.Index == (nuint)this.selectedSeriesIndex && dataIndex == (nuint)this.selectedDataPointIndex) { return(new MyPointLabel(point, series, String.Format("{0}", point.DataYValue))); } return(new TKChartPointLabel(point, series, String.Format("{0}", point.DataYValue))); }
public override void RenderPointLabels(TKChartSeries series, CGRect bounds, CGContext ctx) { if (labelLayer != null) { labelLayer.RemoveFromSuperLayer(); } for (int i = 0; i < series.Items.Length; i++) { TKChartData dataPoint = (TKChartData)series.Items [i]; CGPoint location = base.LocationForDataPoint(dataPoint, series, bounds); if (!bounds.Contains(location)) { continue; } TKChartPointLabel label = this.LabelForDataPoint(dataPoint, series, (uint)i); CGRect labelRect; TKChartPointLabelStyle labelStyle = series.Style.PointLabelStyle; if (this.isSelectedPoint) { labelRect = new CGRect((float)(location.X - 17.5), (float)(location.Y - 10 - 2.5 * Math.Abs(labelStyle.LabelOffset.Vertical)), 35, 30); if (labelRect.Y < bounds.Y) { this.labelLayer.IsOutsideBounds = true; labelRect.Y = (float)(location.Y + 10 + 2.5 * Math.Abs(labelStyle.LabelOffset.Vertical) - labelRect.Size.Height); } else { this.labelLayer.IsOutsideBounds = false; } this.labelLayer.Frame = labelRect; this.Render.AddSublayer(this.labelLayer); this.labelLayer.SetNeedsDisplay(); } else { CGSize labelSize = label.SizeThatFits(bounds.Size); labelRect = new CGRect((float)(location.X - labelSize.Width / 2.0 + labelStyle.LabelOffset.Horizontal), (float)(location.Y - labelSize.Height / 2.0 + labelStyle.LabelOffset.Vertical), labelSize.Width, labelSize.Height); if (labelRect.Y < this.Render.Bounds.Y) { labelRect.Y = (float)(location.Y - labelSize.Height / 2.0 + Math.Abs(labelStyle.LabelOffset.Vertical)); } label.DrawInContext(ctx, labelRect, new TKChartVisualPoint(new PointF(0, 0)), UIColor.White); } } }
public override TKChartPointLabel LabelForDataPoint(TKChart chart, TKChartData dataPoint, string propertyName, TKChartSeries series, nuint dataIndex) { // On iOS, a vertical bar chart is a "Column" series if (series is TKChartColumnSeries) { // If it's a BarSeries use vertical label TKChartDataPoint point = (TKChartDataPoint)dataPoint; series.Style.ShapeMode = TKChartSeriesStyleShapeMode.AlwaysShow; series.Style.PointLabelStyle.LayoutMode = TKChartPointLabelLayoutMode.Manual; series.Style.PointLabelStyle.Fill = new TKSolidFill(UIColor.White); series.Style.PointLabelStyle.Insets = new UIEdgeInsets(-1, -3, -1, -3); // Position the label at your preferred position series.Style.PointLabelStyle.LabelOffset = new UIOffset(0, 200); // Set the text properties series.Style.PointLabelStyle.TextOrientation = TKChartPointLabelOrientation.Vertical; series.Style.PointLabelStyle.TextAlignment = UITextAlignment.Center; series.Style.PointLabelStyle.TextColor = UIColor.Blue; series.Style.PointLabelStyle.TextHidden = false; return(new TKChartPointLabel(point, series, point.DataYValue.ToString())); } else { // use horizontal label for everything else TKChartDataPoint point = (TKChartDataPoint)dataPoint; series.Style.PointShape = new TKPredefinedShape(TKShapeType.Circle, new System.Drawing.SizeF(8, 8)); series.Style.PointLabelStyle.TextHidden = false; series.Style.PointLabelStyle.LabelOffset = new UIOffset(0, -24); series.Style.PointLabelStyle.Insets = new UIEdgeInsets(-1, -5, -1, -5); series.Style.PointLabelStyle.LayoutMode = TKChartPointLabelLayoutMode.Manual; series.Style.PointLabelStyle.Font = UIFont.SystemFontOfSize(10); series.Style.PointLabelStyle.TextAlignment = UITextAlignment.Center; series.Style.PointLabelStyle.Fill = new TKSolidFill(new UIColor((float)(108 / 255.0), (float)(181 / 255.0), (float)(250 / 255.0), (float)1.0)); series.Style.PointLabelStyle.ClipMode = TKChartPointLabelClipMode.Hidden; series.Style.PointLabelStyle.TextOrientation = TKChartPointLabelOrientation.Horizontal; series.Style.PointLabelStyle.TextColor = UIColor.Red; series.Style.ShapeMode = TKChartSeriesStyleShapeMode.AlwaysShow; return(new TKChartPointLabel(point, series, $"{point.DataName}, {point.DataYValue}")); } }
public override TKChartPointLabel LabelForDataPoint (TKChartData dataPoint, TKChartSeries series, nuint dataIndex) { TKChartDataPoint point = (TKChartDataPoint)dataPoint; if (series.Index == (nuint)this.SelectedSeries && dataIndex == (nuint)this.SelectedDataPoint) { if (this.labelLayer == null) { this.labelLayer = new SelectedPointLabel (); } this.labelLayer.LabelStyle = series.Style.PointLabelStyle; this.labelLayer.Text = String.Format ("{0}", point.DataYValue); this.isSelectedPoint = true; return null; } this.isSelectedPoint = false; return new TKChartPointLabel (dataPoint, series, String.Format ("{0}", point.DataYValue)); }
public override string TextForLabelAtPoint(TKChart chart, TKChartData dataPoint, TKChartSeries series, nuint dataIndex) { if (series is TKChartPieSeries) { TKChartDataPoint point = (TKChartDataPoint)dataPoint; return(point.DataName); } else if (series is TKChartBarSeries) { TKChartDataPoint point = (TKChartDataPoint)dataPoint; return(String.Format("{0}", point.DataXValue)); } else if (series is TKChartOhlcSeries) { TKChartFinancialDataPoint point = (TKChartFinancialDataPoint)dataPoint; return(String.Format("O:{0}\nH:{1}\nL:{2}\nC:{3}", point.Open, point.High, point.Low, point.Close)); } return(String.Format("{0}", ((TKChartDataPoint)dataPoint).DataYValue)); }
public override TKChartPointLabel LabelForDataPoint(TKChartData dataPoint, TKChartSeries series, nuint dataIndex) { TKChartDataPoint point = (TKChartDataPoint)dataPoint; if (series.Index == (nuint)this.SelectedSeries && dataIndex == (nuint)this.SelectedDataPoint) { if (this.labelLayer == null) { this.labelLayer = new SelectedPointLabel(); } this.labelLayer.LabelStyle = series.Style.PointLabelStyle; this.labelLayer.Text = String.Format("{0}", point.DataYValue); this.isSelectedPoint = true; return(null); } this.isSelectedPoint = false; return(new TKChartPointLabel(dataPoint, series, String.Format("{0}", point.DataYValue))); }
public MyPointLabel(TKChartData dataPoint, TKChartSeries series, string text) : base(dataPoint, series, text) { }
public MyPointLabel(TKChartData dataPoint, TKChartPointLabelStyle style, string text) : base(dataPoint, style, text) { }
public override void PointSelected(TKChart chart, TKChartData point, TKChartSeries series, nint index) { this.selectedSeriesIndex = (int)series.Index; this.selectedDataPointIndex = (int)index; }
public override string TextForLabelAtPoint(TKChart chart, TKChartData dataPoint, TKChartSeries series, nuint dataIndex) { if (series is TKChartPieSeries) { TKChartDataPoint point = (TKChartDataPoint)dataPoint; return point.DataName; } else if (series is TKChartBarSeries) { TKChartDataPoint point = (TKChartDataPoint)dataPoint; return String.Format ("{0}", point.DataXValue); } else if (series is TKChartOhlcSeries) { TKChartFinancialDataPoint point = (TKChartFinancialDataPoint)dataPoint; return String.Format ("O:{0}\nH:{1}\nL:{2}\nC:{3}", point.Open, point.High, point.Low, point.Close); } return String.Format ("{0}", ((TKChartDataPoint)dataPoint).DataYValue); }
public override void PointDeselected (TKChart chart, TKChartData point, TKChartSeries series, nint index) { if (this.labelRender != null) { this.labelRender.SelectedDataPoint = -1; } }
public override void PointDeselected(TKChart chart, TKChartData point, TKChartSeries series, nint index) { // Here you can perform the desired action when the selection is changed. }