void MeasureLines(Size availableSize) { LineSparklineViewInfo sparklineViewInfo = base.SparklineViewInfo as LineSparklineViewInfo; if (sparklineViewInfo != null) { List <Tuple <Point, Point> > linePos = sparklineViewInfo.LinePos; sparklineViewInfo.MeasurelinePos(availableSize); if ((linePos != null) && (linePos.Count != sparklineViewInfo.LinePos.Count)) { RemoveLines(); } } if ((sparklineViewInfo.LinePos != null) && (sparklineViewInfo.LinePos.Count > 0)) { if (lines == null) { lines = new List <Line>(); } for (int i = 0; i < sparklineViewInfo.LinePos.Count; i++) { Line line; Tuple <Point, Point> tuple = sparklineViewInfo.LinePos[i]; if (tuple != null) { line = null; if (i >= lines.Count) { line = new Line(); line.StrokeStartLineCap = PenLineCap.Round; line.StrokeEndLineCap = PenLineCap.Round; line.Stroke = new SolidColorBrush(SparklineInfo.Setting.SeriesColor); double lineWeight = (base.SparklineViewInfo as LineSparklineViewInfo).GetLineWeight(); line.StrokeThickness = lineWeight; Canvas.SetZIndex(line, LineZIndex); base.Children.Add(line); lines.Add(line); } else { line = lines[i]; } Point point = tuple.Item1; Point point2 = tuple.Item2; line.X1 = point.X; line.X2 = point2.X; line.Y1 = point.Y; line.Y2 = point2.Y; line.Measure(availableSize); } } } }
/// <summary> /// Creates a new instance of the class. /// </summary> /// <param name="viewInfo">The line sparkline view information.</param> public LineSparklineView(LineSparklineViewInfo viewInfo) : base(viewInfo) { }