private void colorPolygon(Polygon polygon) { if (polygon.Points != null) { var maxX = polygon.Points.Max(point => point.X); var maxY = polygon.Points.Max(point => point.Y); var minX = polygon.Points.Min(point => point.X); var minY = polygon.Points.Min(point => point.Y); var firstPoint = new Point(minX, minY); var secondPoint = new Point(maxX, maxY); var averageColor = PixelUtilities.GetAverageColor(this.SourcePicture, firstPoint, secondPoint); Brush brush = new SolidColorBrush(averageColor); polygon.Fill = brush; polygon.Stroke = brush; polygon.StrokeThickness = 1.0; } }