DekGenius.com
[ Team LiB ] Previous Section Next Section

ControlPaint

System.Windows.Forms (system.windows.forms.dll)sealed class

This class encapsulates a variety of static methods to help you paint your own custom controls and maintain consistency with the appearance of the rest of the UI. Unfortunately, none of these methods support Windows XP themes.

Most common UI elements are supported, including caption buttons, resizing grips, buttons, edit fields, comboboxes, various kinds of flat and 3D borders and frames, focus rectangles, and grids.

In addition, there is a class of methods that will automatically generate the Light(), LightLight(), Dark(), and DarkDark() versions of a specific System.Drawing.Color. If your control is, say, Red instead of Control, you don't want to use System.Drawing.SystemColors.ControlDark to paint a dark edge. Instead, use Dark() to retrieve a dark version of Red instead.

Probably the most frequently asked question in Windows.Forms development is "How do I draw a rubberband box/line?" ControlPaint offers DrawReversibleLine(), DrawReversibleFrame(), and FillReversibleRectangle(). Again, it is worth noting that Windows XP doesn't use XOR-ed rectangles any more, because of their limitations when painting over a mid-level color, so you should consider an alternative drawing strategy. One possible approach is to paint a semitransparent rectangle to represent your selection instead, calling Control.Invalidate() to restore the previous background between updates. This works best (and flicker free!) if your selection rectangle is painted as part of your Control.OnPaint() override, and your control has ControlStyles.DoubleBuffer set.

public sealed class ControlPaint {
// Public Static Properties
   public static Color ContrastControlDark{get; }
// Public Static Methods
   public static IntPtr CreateHBitmap16Bit(System.Drawing.Bitmap bitmap, System.Drawing.Color background);
   public static IntPtr CreateHBitmapColorMask(System.Drawing.Bitmap bitmap, IntPtr monochromeMask);
   public static IntPtr CreateHBitmapTransparencyMask(System.Drawing.Bitmap bitmap);
   public static Color Dark(System.Drawing.Color baseColor);
   public static Color Dark(System.Drawing.Color baseColor, float percOfDarkDark);
   public static Color DarkDark(System.Drawing.Color baseColor);
   public static void DrawBorder(System.Drawing.Graphics graphics, System.Drawing.Rectangle bounds, 
        System.Drawing.Color color, ButtonBorderStyle style);
   public static void DrawBorder(System.Drawing.Graphics graphics, System.Drawing.Rectangle bounds, 
        System.Drawing.Color leftColor, int leftWidth, ButtonBorderStyle leftStyle, System.Drawing.Color topColor, int topWidth,
        ButtonBorderStyle topStyle, System.Drawing.Color rightColor, int rightWidth, ButtonBorderStyle rightStyle, 
        System.Drawing.Color bottomColor, int bottomWidth, ButtonBorderStyle bottomStyle);
   public static void DrawBorder3D(System.Drawing.Graphics graphics, int x, int y, int width, int height);
   public static void DrawBorder3D(System.Drawing.Graphics graphics, int x, int y, int width, int height, Border3DStyle style);
   public static void DrawBorder3D(System.Drawing.Graphics graphics, int x, int y, int width, int height, Border3DStyle style,
        Border3DSide sides);
   public static void DrawBorder3D(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle);
   public static void DrawBorder3D(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle, 
        Border3DStyle style);
   public static void DrawBorder3D(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle, 
        Border3DStyle style, Border3DSide sides);
   public static void DrawButton(System.Drawing.Graphics graphics, int x, int y, int width, int height, ButtonState state);
   public static void DrawButton(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle, 
        ButtonState state);
   public static void DrawCaptionButton(System.Drawing.Graphics graphics, int x, int y, int width, int height, 
        CaptionButton button, ButtonState state);
   public static void DrawCaptionButton(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle, 
        CaptionButton button, ButtonState state);
   public static void DrawCheckBox(System.Drawing.Graphics graphics, int x, int y, int width, int height, ButtonState state);
   public static void DrawCheckBox(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle, 
        ButtonState state);
   public static void DrawComboButton(System.Drawing.Graphics graphics, int x, int y, int width, int height, 
        ButtonState state);
   public static void DrawComboButton(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle,
        ButtonState state);
   public static void DrawContainerGrabHandle(System.Drawing.Graphics graphics, System.Drawing.Rectangle bounds);
   public static void DrawFocusRectangle(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle);
   public static void DrawFocusRectangle(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle, 
        System.Drawing.Color foreColor, System.Drawing.Color backColor);
   public static void DrawGrabHandle(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle, 
        bool primary, bool enabled);
   public static void DrawGrid(System.Drawing.Graphics graphics, System.Drawing.Rectangle area,
        System.Drawing.Size pixelsBetweenDots, System.Drawing.Color backColor);
   public static void DrawImageDisabled(System.Drawing.Graphics graphics, System.Drawing.Image image, int x, int y, 
        System.Drawing.Color background);
   public static void DrawLockedFrame(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle, 
        bool primary);
   public static void DrawMenuGlyph(System.Drawing.Graphics graphics, int x, int y, int width, int height, MenuGlyph glyph);
   public static void DrawMenuGlyph(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle, 
        MenuGlyph glyph);
   public static void DrawMixedCheckBox(System.Drawing.Graphics graphics, int x, int y, int width, int height, 
        ButtonState state);
   public static void DrawMixedCheckBox(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle, 
        ButtonState state);
   public static void DrawRadioButton(System.Drawing.Graphics graphics, int x, int y, int width, int height, |
        ButtonState state);
   public static void DrawRadioButton(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle,
        ButtonState state);
   public static void DrawReversibleFrame(System.Drawing.Rectangle rectangle, System.Drawing.Color backColor,
        FrameStyle style);
   public static void DrawReversibleLine(System.Drawing.Point start, System.Drawing.Point end,
        System.Drawing.Color backColor);
   public static void DrawScrollButton(System.Drawing.Graphics graphics, int x, int y, int width, int height, 
        ScrollButton button, ButtonState state);
   public static void DrawScrollButton(System.Drawing.Graphics graphics, System.Drawing.Rectangle rectangle,
        ScrollButton button, ButtonState state);
   public static void DrawSelectionFrame(System.Drawing.Graphics graphics, bool active, 
        System.Drawing.Rectangle outsideRect, System.Drawing.Rectangle insideRect, System.Drawing.Color backColor);
   public static void DrawSizeGrip(System.Drawing.Graphics graphics, System.Drawing.Color backColor, int x, int y, 
        int width, int height);
   public static void DrawSizeGrip(System.Drawing.Graphics graphics, System.Drawing.Color backColor,
        System.Drawing.Rectangle bounds);
   public static void DrawStringDisabled(System.Drawing.Graphics graphics, string s, System.Drawing.Font font,
        System.Drawing.Color color, System.Drawing.RectangleF layoutRectangle, System.Drawing.StringFormat format);
   public static void FillReversibleRectangle(System.Drawing.Rectangle rectangle, System.Drawing.Color backColor);
   public static Color Light(System.Drawing.Color baseColor);
   public static Color Light(System.Drawing.Color baseColor, float percOfLightLight);
   public static Color LightLight(System.Drawing.Color baseColor);
}
    [ Team LiB ] Previous Section Next Section