using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Media; using System.Windows; namespace Microsoft.Research.DynamicDataDisplay.Charts.Shapes { /// /// Represents a polyline with points in Viewport coordinates. /// public sealed class ViewportPolyline : ViewportPolylineBase { /// /// Initializes a new instance of the class. /// public ViewportPolyline() { } protected override void UpdateUIRepresentationCore() { var transform = Plotter.Viewport.Transform; PathGeometry geometry = PathGeometry; PointCollection points = Points; geometry.Clear(); if (points == null) { } else { PathFigure figure = new PathFigure(); if (points.Count > 0) { figure.StartPoint = points[0].DataToScreen(transform); if (points.Count > 1) { Point[] pointArray = new Point[points.Count - 1]; for (int i = 1; i < points.Count; i++) { pointArray[i - 1] = points[i].DataToScreen(transform); } figure.Segments.Add(new PolyLineSegment(pointArray, true)); } } geometry.Figures.Add(figure); geometry.FillRule = this.FillRule; } } } }