OnPaint Method
Collapse the table of content
Expand the table of content

ActivityDesigner.OnPaint Method (ActivityDesignerPaintEventArgs)


Draws the visual representation of the activity at design time.

Namespace:   System.Workflow.ComponentModel.Design
Assembly:  System.Workflow.ComponentModel (in System.Workflow.ComponentModel.dll)

protected virtual void OnPaint(
	ActivityDesignerPaintEventArgs e

Exception Condition

e contains a null reference (Nothing in Visual Basic).

The following example shows a custom ActivityDesigner that delegates the painting responsibility to the base class or draws itself based on a Boolean value. If useBasePaint is false, the custom activity will draw itself using the various methods of the ActivityDesignerPaint class.

private bool expanded = true;
private bool useBasePaint = false;

public bool UseBasePaint
    get { return this.useBasePaint; }
    set { this.useBasePaint = value; }

public bool Expanded
    get { return this.expanded; }
    set { this.expanded = value; }

protected override void OnPaint(ActivityDesignerPaintEventArgs e)
    if (this.UseBasePaint == true)


private void DrawCustomActivity(ActivityDesignerPaintEventArgs e)
    Graphics graphics = e.Graphics;

    CompositeDesignerTheme compositeDesignerTheme = (CompositeDesignerTheme)e.DesignerTheme;

    ActivityDesignerPaint.DrawRoundedRectangle(graphics, compositeDesignerTheme.BorderPen, this.Bounds, compositeDesignerTheme.BorderWidth);

    string text = this.Text;
    Rectangle textRectangle = this.TextRectangle;
    if (!String.IsNullOrEmpty(text) && !textRectangle.IsEmpty)
        ActivityDesignerPaint.DrawText(graphics, compositeDesignerTheme.Font, text, textRectangle, StringAlignment.Center, e.AmbientTheme.TextQuality, compositeDesignerTheme.ForegroundBrush);

    System.Drawing.Image image = this.Image;
    Rectangle imageRectangle = this.ImageRectangle;
    if (image != null && !imageRectangle.IsEmpty)
        ActivityDesignerPaint.DrawImage(graphics, image, imageRectangle, DesignerContentAlignment.Fill);

        new Rectangle(this.Location.X, this.Location.Y, 10, 10),

.NET Framework
Available since 3.0
Return to top
© 2015 Microsoft