예제 #1
0
        /// <summary>Renders a triangle.</summary>
        /// <param name="graphics">The graphics to draw on.</param>
        /// <param name="rectangle">The button rectangle.</param>
        /// <param name="color">The color.</param>
        /// <param name="direction">The direction.</param>
        public static void RenderTriangle(Graphics graphics, Rectangle rectangle, Color color, Alignment.Vertical direction)
        {
            var points = new Point[3];

            switch (direction)
            {
            case Alignment.Vertical.Up:
            {
                points[0].X = rectangle.X + (rectangle.Width / 2);
                points[0].Y = rectangle.Y;

                points[1].X = rectangle.X;
                points[1].Y = rectangle.Y + rectangle.Height;

                points[2].X = rectangle.X + rectangle.Width;
                points[2].Y = rectangle.Y + rectangle.Height;
                break;
            }

            case Alignment.Vertical.Down:
            {
                points[0].X = rectangle.X;
                points[0].Y = rectangle.Y;

                points[1].X = rectangle.X + rectangle.Width;
                points[1].Y = rectangle.Y;

                points[2].X = rectangle.X + (rectangle.Width / 2);
                points[2].Y = rectangle.Y + rectangle.Height;
                break;
            }

            default:
            {
                throw new ArgumentOutOfRangeException(nameof(direction), direction, null);
            }
            }

            graphics.SmoothingMode = SmoothingMode.HighQuality;
            graphics.FillPolygon(new SolidBrush(color), points);
        }
예제 #2
0
 /// <summary>Renders a triangle image.</summary>
 /// <param name="graphics">The specified graphics to draw on.</param>
 /// <param name="color">The color.</param>
 /// <param name="image">The image.</param>
 /// <param name="rectangle">The rectangle.</param>
 /// <param name="direction">The direction.</param>
 public static void RenderTriangleImage(Graphics graphics, Color color, Image image, Rectangle rectangle, Alignment.Vertical direction)
 {
     if (image != null)
     {
         // TODO: Flip image based on direction.
         graphics.DrawImage(image, rectangle);
     }
     else
     {
         RenderTriangle(graphics, rectangle, color, direction);
     }
 }
예제 #3
0
 /// <summary>Renders a triangle.</summary>
 /// <param name="graphics">The specified graphics to draw on.</param>
 /// <param name="color">The color.</param>
 /// <param name="disabled">The disabled.</param>
 /// <param name="enabled">The enabled.</param>
 /// <param name="image">The image.</param>
 /// <param name="rectangle">The rectangle.</param>
 /// <param name="direction">The direction.</param>
 public static void RenderTriangle(Graphics graphics, Color color, Color disabled, bool enabled, Image image, Rectangle rectangle, Alignment.Vertical direction)
 {
     if (image != null)
     {
         graphics.DrawImage(image, rectangle);
     }
     else
     {
         Color colorState = enabled ? color : disabled;
         RenderTriangle(graphics, rectangle, colorState, direction);
     }
 }