Exemplo n.º 1
0
        /// <summary>
        /// Draws the bounding box and its edit handles into the given canvas
        /// </summary>
        /// <param name="canvas">Canvas.</param>
        public virtual void Draw(SKCanvas canvas)
        {
            // Anything to process?
            if (State != KimonoShapeState.Selected &&
                State != KimonoShapeState.Constructing &&
                State != KimonoShapeState.Grouping)
            {
                return;
            }

            // Define the paint style
            var paint = new SKPaint()
            {
                Style       = SKPaintStyle.Stroke,
                StrokeWidth = 1
            };

            // Set stroke based on the state
            switch (State)
            {
            case KimonoShapeState.Grouping:
                paint.Color = KimonoColor.Ice;
                break;

            case KimonoShapeState.Selected:
                paint.Color = KimonoColor.Tungsten;
                break;

            case KimonoShapeState.Constructing:
                paint.Color = KimonoColor.Aqua;
                break;
            }

            // Draw bounding frame
            canvas.DrawRect(Rect, paint);

            // Draw the four corner handles
            TopLeftHandle?.Draw(canvas);
            TopRightHandle?.Draw(canvas);
            BottomRightHandle?.Draw(canvas);
            BottomLeftHandle?.Draw(canvas);

            // Draw optional handles
            TopHandle?.Draw(canvas);
            RightHandle?.Draw(canvas);
            BottomHandle?.Draw(canvas);
            LeftHandle?.Draw(canvas);
        }