public virtual void DrawButton(Graphics surface, DropDownButtonRenderingArgs args, PushButtonState state) { surface.SmoothingMode = SmoothingMode.HighQuality; surface.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; surface.PixelOffsetMode = PixelOffsetMode.HighQuality; surface.InterpolationMode = InterpolationMode.HighQualityBicubic; surface.CompositingQuality = CompositingQuality.HighQuality; if (args.Image == null) { ButtonRenderer.DrawButton(surface, args.Bounds, args.Focused, state); } else { ButtonRenderer.DrawButton(surface, args.Bounds, args.Image, args.ImageBounds, args.Focused, state); } if (state == PushButtonState.Disabled) { TextRenderer.DrawText(surface, args.Text, args.Font, args.Bounds, SystemColors.GrayText, args.BackColor, args.TextFormatFlags); } else { TextRenderer.DrawText(surface, args.Text, args.Font, args.Bounds, args.ForeColor, args.BackColor, args.TextFormatFlags); } }
public virtual void DrawDropDownButton(Graphics surface, DropDownButtonRenderingArgs args, PushButtonState state) { DrawButton(surface, args, state); DrawArrow(surface, args, state); }
public virtual void DrawArrow(Graphics surface, DropDownButtonRenderingArgs args, PushButtonState state) { surface.SmoothingMode = SmoothingMode.HighQuality; surface.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; surface.PixelOffsetMode = PixelOffsetMode.HighQuality; surface.InterpolationMode = InterpolationMode.HighQualityBicubic; surface.CompositingQuality = CompositingQuality.HighQuality; PointF center = new PointF(Convert.ToSingle(args.Bounds.Width / 2) + args.Bounds.X, Convert.ToSingle(args.Bounds.Height / 2) + args.Bounds.Y); PointF[] pts = new PointF[] { new PointF(center.X - 3, center.Y), new PointF(center.X + 2, center.Y), new PointF(center.X, center.Y + 3) }; if (state == PushButtonState.Disabled) { surface.FillPolygon(Brushes.DarkGray, pts); surface.DrawPolygon(Pens.LightGray, pts); } else { surface.FillPolygon(Brushes.Black, pts); surface.DrawPolygon(Pens.DimGray, pts); } }