System.Drawing.Drawing2D Namespace

The System.Drawing.Drawing2D namespace provides advanced two-dimensional and vector graphics functionality.

The following table lists some of the important classes and enumerations in theSystem.Drawing.Drawing2D namespace, grouped into categories.

Class category


  • Graphics and Graphics paths

The GraphicsState and GraphicsContainer classes report information about the current Graphics object. GraphicsPath classes represent a series of lines and curves. The GraphicsPathIterator and PathData classes provide detailed information about the contents of a GraphicsPath object.

  • Matrix and transformation related types

The Matrix class represents a matrix for geometric transforms. The MatrixOrder enumeration specifies the order for matrix transformations.

  • Brush classes

The PathGradientBrush and HatchBrush classes enable you to fill shapes with either a gradient, or hatch pattern, respectively.

  • Enumeration related to lines

The LineCap and CustomLineCap enumerations enable you to specify cap styles for a line. The, LineJoin enumeration enables you to specify how two lines are joined in a path. The PenAlignment enumeration enables you specify the alignment of the drawing tip, when you draw a line. The PenType enumeration specifies the pattern a line should be filled with.

  • Enumerations related to filling shapes and paths

The HatchStyle enumeration specifies fill styles for a HatchBrush. The Blend class specifies a blend pattern for a LinearGradientBrush. The FillMode enumeration specifies the fill style for a GraphicsPath.

Caution noteCaution:

Classes in the System.Drawing.Drawing2D namespace are not supported for use in a Windows or ASP.NET service. Attempting to use these classes in one of these application types may produce unexpected problems, such as diminished service performance and run-time exceptions.

Public classAdjustableArrowCapRepresents an adjustable arrow-shaped line cap. This class cannot be inherited.
Public classBlendDefines a blend pattern for a LinearGradientBrush object. This class cannot be inherited.
Public classColorBlendDefines arrays of colors and positions used for interpolating color blending in a multicolor gradient. This class cannot be inherited.
Public classCustomLineCapEncapsulates a custom user-defined line cap.
Public classGraphicsContainerRepresents the internal data of a graphics container. This class is used when saving the state of a Graphics object using the BeginContainer and EndContainer methods. This class cannot be inherited.
Public classGraphicsPathRepresents a series of connected lines and curves. This class cannot be inherited.
Public classGraphicsPathIteratorProvides the ability to iterate through subpaths in a GraphicsPath and test the types of shapes contained in each subpath. This class cannot be inherited.
Public classGraphicsStateRepresents the state of a Graphics object. This object is returned by a call to the BeginContainer methods. This class cannot be inherited.
Public classHatchBrushDefines a rectangular brush with a hatch style, a foreground color, and a background color. This class cannot be inherited.
Public classLinearGradientBrushEncapsulates a Brush with a linear gradient. This class cannot be inherited.
Public classMatrixEncapsulates a 3-by-3 affine matrix that represents a geometric transform. This class cannot be inherited.
Public classPathDataContains the graphical data that makes up a GraphicsPath object. This class cannot be inherited.
Public classPathGradientBrushEncapsulates a Brush object that fills the interior of a GraphicsPath object with a gradient. This class cannot be inherited.
Public classRegionDataEncapsulates the data that makes up a Region object. This class cannot be inherited.

Public enumerationCombineModeSpecifies how different clipping regions can be combined.
Public enumerationCompositingModeSpecifies how the source colors are combined with the background colors.
Public enumerationCompositingQualitySpecifies the quality level to use during compositing.
Public enumerationCoordinateSpaceSpecifies the system to use when evaluating coordinates.
Public enumerationDashCapSpecifies the type of graphic shape to use on both ends of each dash in a dashed line.
Public enumerationDashStyleSpecifies the style of dashed lines drawn with a Pen object.
Public enumerationFillModeSpecifies how the interior of a closed path is filled.
Public enumerationFlushIntentionSpecifies whether commands in the graphics stack are terminated (flushed) immediately or executed as soon as possible.
Public enumerationHatchStyleSpecifies the different patterns available for HatchBrush objects.
Public enumerationInterpolationModeThe InterpolationMode enumeration specifies the algorithm that is used when images are scaled or rotated.
Public enumerationLinearGradientModeSpecifies the direction of a linear gradient.
Public enumerationLineCapSpecifies the available cap styles with which a Pen object can end a line.
Public enumerationLineJoinSpecifies how to join consecutive line or curve segments in a figure (subpath) contained in a GraphicsPath object.
Public enumerationMatrixOrderSpecifies the order for matrix transform operations.
Public enumerationPathPointTypeSpecifies the type of point in a GraphicsPath object.
Public enumerationPenAlignmentSpecifies the alignment of a Pen object in relation to the theoretical, zero-width line.
Public enumerationPenTypeSpecifies the type of fill a Pen object uses to fill lines.
Public enumerationPixelOffsetModeSpecifies how pixels are offset during rendering.
Public enumerationQualityModeSpecifies the overall quality when rendering GDI+ objects.
Public enumerationSmoothingModeSpecifies whether smoothing (antialiasing) is applied to lines and curves and the edges of filled areas.
Public enumerationWarpModeSpecifies the type of warp transformation applied in a Warp method.
Public enumerationWrapModeSpecifies how a texture or gradient is tiled when it is smaller than the area being filled.