Pen Class

Definition

Defines an object used to draw lines and curves. This class cannot be inherited.

public ref class Pen sealed : MarshalByRefObject, ICloneable, IDisposable
public sealed class Pen : MarshalByRefObject, ICloneable, IDisposable
type Pen = class
    inherit MarshalByRefObject
    interface ICloneable
    interface IDisposable
Public NotInheritable Class Pen
Inherits MarshalByRefObject
Implements ICloneable, IDisposable
Inheritance
Implements

Examples

The following code example demonstrates constructing a Pen with a Brush and the effects of setting the LineJoin property on a Pen.

This example is designed to be used with Windows Forms. Paste the code into a form and call the ShowLineJoin method when handling the form's Paint event, passing e as PaintEventArgs.

private:
   void ShowLineJoin( PaintEventArgs^ e )
   {
      // Create a new pen.
      Pen^ skyBluePen = gcnew Pen( Brushes::DeepSkyBlue );

      // Set the pen's width.
      skyBluePen->Width = 8.0F;

      // Set the LineJoin property.
      skyBluePen->LineJoin = System::Drawing::Drawing2D::LineJoin::Bevel;

      // Draw a rectangle.
      e->Graphics->DrawRectangle( skyBluePen, Rectangle(40,40,150,200) );

      //Dispose of the pen.
      delete skyBluePen;
   }
private void ShowLineJoin(PaintEventArgs e)
{

    // Create a new pen.
    Pen skyBluePen = new Pen(Brushes.DeepSkyBlue);

    // Set the pen's width.
    skyBluePen.Width = 8.0F;

    // Set the LineJoin property.
    skyBluePen.LineJoin = System.Drawing.Drawing2D.LineJoin.Bevel;

    // Draw a rectangle.
    e.Graphics.DrawRectangle(skyBluePen, 
        new Rectangle(40, 40, 150, 200));

    //Dispose of the pen.
    skyBluePen.Dispose();
}
Private Sub ShowLineJoin(ByVal e As PaintEventArgs)

    ' Create a new pen.
    Dim skyBluePen As New Pen(Brushes.DeepSkyBlue)

    ' Set the pen's width.
    skyBluePen.Width = 8.0F

    ' Set the LineJoin property.
    skyBluePen.LineJoin = Drawing2D.LineJoin.Bevel

    ' Draw a rectangle.
    e.Graphics.DrawRectangle(skyBluePen, _
        New Rectangle(40, 40, 150, 200))

    'Dispose of the pen.
    skyBluePen.Dispose()

End Sub

Remarks

A Pen draws a line of specified width and style. Use the DashStyle property to draw several varieties of dashed lines. The line drawn by a Pen can be filled in a variety of fill styles, including solid colors and textures. The fill style depends on brush or texture that is used as the fill object.

Note

In .NET 6 and later versions, the System.Drawing.Common package, which includes this type, is only supported on Windows operating systems. Use of this type in cross-platform apps causes compile-time warnings and run-time exceptions. For more information, see System.Drawing.Common only supported on Windows.

Constructors

Pen(Brush)

Initializes a new instance of the Pen class with the specified Brush.

Pen(Brush, Single)

Initializes a new instance of the Pen class with the specified Brush and Width.

Pen(Color)

Initializes a new instance of the Pen class with the specified color.

Pen(Color, Single)

Initializes a new instance of the Pen class with the specified Color and Width properties.

Properties

Alignment

Gets or sets the alignment for this Pen.

Brush

Gets or sets the Brush that determines attributes of this Pen.

Color

Gets or sets the color of this Pen.

CompoundArray

Gets or sets an array of values that specifies a compound pen. A compound pen draws a compound line made up of parallel lines and spaces.

CustomEndCap

Gets or sets a custom cap to use at the end of lines drawn with this Pen.

CustomStartCap

Gets or sets a custom cap to use at the beginning of lines drawn with this Pen.

DashCap

Gets or sets the cap style used at the end of the dashes that make up dashed lines drawn with this Pen.

DashOffset

Gets or sets the distance from the start of a line to the beginning of a dash pattern.

DashPattern

Gets or sets an array of custom dashes and spaces.

DashStyle

Gets or sets the style used for dashed lines drawn with this Pen.

EndCap

Gets or sets the cap style used at the end of lines drawn with this Pen.

LineJoin

Gets or sets the join style for the ends of two consecutive lines drawn with this Pen.

MiterLimit

Gets or sets the limit of the thickness of the join on a mitered corner.

PenType

Gets the style of lines drawn with this Pen.

StartCap

Gets or sets the cap style used at the beginning of lines drawn with this Pen.

Transform

Gets or sets a copy of the geometric transformation for this Pen.

Width

Gets or sets the width of this Pen, in units of the Graphics object used for drawing.

Methods

Clone()

Creates an exact copy of this Pen.

CreateObjRef(Type)

Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
Dispose()

Releases all resources used by this Pen.

Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
Finalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.

GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetLifetimeService()
Obsolete.

Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetType()

Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService()
Obsolete.

Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean)

Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
MultiplyTransform(Matrix)

Multiplies the transformation matrix for this Pen by the specified Matrix.

MultiplyTransform(Matrix, MatrixOrder)

Multiplies the transformation matrix for this Pen by the specified Matrix in the specified order.

ResetTransform()

Resets the geometric transformation matrix for this Pen to identity.

RotateTransform(Single)

Rotates the local geometric transformation by the specified angle. This method prepends the rotation to the transformation.

RotateTransform(Single, MatrixOrder)

Rotates the local geometric transformation by the specified angle in the specified order.

ScaleTransform(Single, Single)

Scales the local geometric transformation by the specified factors. This method prepends the scaling matrix to the transformation.

ScaleTransform(Single, Single, MatrixOrder)

Scales the local geometric transformation by the specified factors in the specified order.

SetLineCap(LineCap, LineCap, DashCap)

Sets the values that determine the style of cap used to end lines drawn by this Pen.

ToString()

Returns a string that represents the current object.

(Inherited from Object)
TranslateTransform(Single, Single)

Translates the local geometric transformation by the specified dimensions. This method prepends the translation to the transformation.

TranslateTransform(Single, Single, MatrixOrder)

Translates the local geometric transformation by the specified dimensions in the specified order.

Applies to