private void DrawFunnelFigure() { this.editor.Position.Translate(0, 0); this.editor.GraphicProperties.IsStroked = false; this.editor.GraphicProperties.FillColor = new RgbColor(147, 208, 237); this.editor.DrawEllipse(ExampleDocumentSizes.EllipseCenter, ExampleDocumentSizes.EllipseRadiuses.Width, ExampleDocumentSizes.EllipseRadiuses.Height); double funelBlockGap = (ExampleDocumentSizes.FunnelHeight - 3 * ExampleDocumentSizes.FunnelBlockHeight) / 2; double startPercent = 0; double endPercent = ExampleDocumentSizes.GetPercentHeight(ExampleDocumentSizes.FunnelBlockHeight); this.DrawFunnelBlock(startPercent, endPercent); startPercent = ExampleDocumentSizes.GetPercentHeight(ExampleDocumentSizes.FunnelBlockHeight + funelBlockGap); endPercent = ExampleDocumentSizes.GetPercentHeight(2 * ExampleDocumentSizes.FunnelBlockHeight + funelBlockGap); this.DrawFunnelBlock(startPercent, endPercent); startPercent = ExampleDocumentSizes.GetPercentHeight(2 * ExampleDocumentSizes.FunnelBlockHeight + 2 * funelBlockGap); endPercent = ExampleDocumentSizes.GetPercentHeight(3 * ExampleDocumentSizes.FunnelBlockHeight + 2 * funelBlockGap); this.DrawFunnelBlock(startPercent, endPercent); this.editor.Position.Translate(ExampleDocumentSizes.ArrowStart.X - 18, ExampleDocumentSizes.ArrowStart.Y + ExampleDocumentSizes.ArrowLength + 5); this.editor.TextProperties.FontSize = 18; this.editor.GraphicProperties.FillColor = new RgbColor(41, 156, 206); this.editor.TextProperties.TrySetFont(new FontFamily("Arial"), FontStyles.Normal, FontWeights.Bold); this.editor.DrawText("PDF"); this.DrawArrow(); }
private void DrawFunnelBlock(double startPercentHeight, double endPercentHeight) { Point[] contourPoints = ExampleDocumentSizes.GetSubFunnelBlockContourPoints(startPercentHeight, endPercentHeight); this.editor.GraphicProperties.IsStroked = false; PathGeometry path = new PathGeometry(); PathFigure figure = path.Figures.AddPathFigure(); figure.StartPoint = contourPoints[0]; figure.IsClosed = true; string funnelBlockText; double textYOffset = 0; if (startPercentHeight == 0) { funnelBlockText = "IMAGES"; this.editor.GraphicProperties.FillColor = new RgbColor(37, 160, 219); ArcSegment arc = figure.Segments.AddArcSegment(); arc.Point = contourPoints[1]; arc.IsLargeArc = false; arc.SweepDirection = SweepDirection.Counterclockwise; arc.RadiusX = ExampleDocumentSizes.EllipseRadiuses.Width; arc.RadiusY = ExampleDocumentSizes.EllipseRadiuses.Height; textYOffset = arc.RadiusY / 2; figure.Segments.AddLineSegment(contourPoints[2]); figure.Segments.AddLineSegment(contourPoints[3]); textYOffset = ExampleDocumentSizes.EllipseRadiuses.Height; } else if (endPercentHeight == 1) { funnelBlockText = "FONTS"; this.editor.GraphicProperties.FillColor = new RgbColor(42, 180, 0); figure.Segments.AddLineSegment(contourPoints[1]); figure.Segments.AddLineSegment(contourPoints[2]); ArcSegment arc = figure.Segments.AddArcSegment(); arc.Point = contourPoints[3]; arc.IsLargeArc = false; arc.SweepDirection = SweepDirection.Clockwise; arc.RadiusX = ExampleDocumentSizes.EllipseRadiuses.Width; arc.RadiusY = ExampleDocumentSizes.EllipseRadiuses.Height + 100; } else { funnelBlockText = "SHAPES"; this.editor.GraphicProperties.FillColor = new RgbColor(255, 127, 0); figure.Segments.AddLineSegment(contourPoints[1]); figure.Segments.AddLineSegment(contourPoints[2]); figure.Segments.AddLineSegment(contourPoints[3]); } this.editor.DrawPath(path); using (this.editor.SavePosition()) { Size textSize = new Size(contourPoints[1].X - contourPoints[0].X, ExampleDocumentSizes.FunnelBlockHeight - textYOffset); this.editor.Position.Translate(contourPoints[0].X, contourPoints[0].Y + textYOffset); DrawCenteredText(this.editor, funnelBlockText, textSize); } }