Exemplo n.º 1
0
        private void DrawValueLabels(SKCanvas canvas, SKSize itemSize, Dictionary <ChartEntry, SKRect> valueLabelSizes)
        {
            ValueLabelOption valueLabelOption = ValueLabelOption;

            if (ValueLabelOption == ValueLabelOption.TopOfChart && Series.Count() > 1)
            {
                valueLabelOption = ValueLabelOption.TopOfPoint;
            }

            if (valueLabelOption == ValueLabelOption.TopOfPoint || valueLabelOption == ValueLabelOption.OverPoint)
            {
                foreach (var pps in pointsPerSerie)
                {
                    var entries = pps.Key.Entries.ToArray();
                    for (int i = 0; i < pps.Value.Count; i++)
                    {
                        var     entry       = entries[i];
                        var     drawedPoint = pps.Value.ElementAt(i);
                        SKPoint point;
                        var     valueLabelSize = valueLabelSizes[entry];
                        if (valueLabelOption == ValueLabelOption.TopOfPoint)
                        {
                            point = new SKPoint(drawedPoint.X, drawedPoint.Y - (PointSize / 2) - (Margin / 2));
                        }
                        else
                        {
                            point = new SKPoint(drawedPoint.X, drawedPoint.Y);
                        }

                        DrawHelper.DrawLabel(canvas, Orientation.Horizontal, false, itemSize, point, entry.ValueLabelColor.WithAlpha((byte)(255 * AnimationProgress)), valueLabelSize, entry.ValueLabel, ValueLabelTextSize, Typeface);
                    }
                }
            }
        }
Exemplo n.º 2
0
        private void DrawValueLabels(SKCanvas canvas, SKSize itemSize, Dictionary <ChartEntry, SKRect> valueLabelSizes)
        {
            ValueLabelOption valueLabelOption = ValueLabelOption;

            if (ValueLabelOption == ValueLabelOption.TopOfChart && Series.Count() > 1)
            {
                valueLabelOption = ValueLabelOption.TopOfElement;
            }

            if (valueLabelOption == ValueLabelOption.TopOfElement || valueLabelOption == ValueLabelOption.OverElement)
            {
                foreach (var pps in pointsPerSerie)
                {
                    var entries = pps.Key.Entries.ToArray();
                    for (int i = 0; i < pps.Value.Count; i++)
                    {
                        var entry = entries[i];
                        if (!string.IsNullOrEmpty(entry.ValueLabel))
                        {
                            var               drawedPoint = pps.Value.ElementAt(i);
                            SKPoint           point;
                            YPositionBehavior yPositionBehavior = YPositionBehavior.None;
                            var               valueLabelSize    = valueLabelSizes[entry];
                            if (valueLabelOption == ValueLabelOption.TopOfElement)
                            {
                                point = new SKPoint(drawedPoint.X, drawedPoint.Y - (PointSize / 2) - (Margin / 2));
                                if (ValueLabelOrientation == Orientation.Vertical)
                                {
                                    yPositionBehavior = YPositionBehavior.UpToElementHeight;
                                }
                            }
                            else
                            {
                                if (ValueLabelOrientation == Orientation.Vertical)
                                {
                                    yPositionBehavior = YPositionBehavior.UpToElementMiddle;
                                }
                                else
                                {
                                    yPositionBehavior = YPositionBehavior.DownToElementMiddle;
                                }

                                point = new SKPoint(drawedPoint.X, drawedPoint.Y);
                            }

                            DrawHelper.DrawLabel(canvas, ValueLabelOrientation, yPositionBehavior, itemSize, point, entry.ValueLabelColor.WithAlpha((byte)(255 * AnimationProgress)), valueLabelSize, entry.ValueLabel, ValueLabelTextSize, Typeface, AllowValueLabelOverflow);
                        }
                    }
                }
            }
        }