/// <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); }
/// <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); } }
/// <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); } }