Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Expand Minimize

ActivityDesigner.OnPaint Method

Draws the visual representation of the activity at design time.

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

'Declaration
Protected Overridable Sub OnPaint ( _
	e As ActivityDesignerPaintEventArgs _
)
'Usage
Dim e As ActivityDesignerPaintEventArgs 

Me.OnPaint(e)

ExceptionCondition
ArgumentNullException

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 expandedValue As Boolean = True 
Private useBasePaintValue As Boolean = False 

Public Property UseBasePaint() As Boolean 
    Get 
        Return Me.useBasePaintValue
    End Get 

    Set(ByVal value As Boolean)
        Me.useBasePaintValue = value
    End Set 
End Property 

Public Property Expanded() As Boolean 
    Get 
        Return Me.expandedValue
    End Get 
    Set(ByVal value As Boolean)
        Me.expandedValue = value
    End Set 
End Property 


Protected Overrides Sub OnPaint(ByVal e As ActivityDesignerPaintEventArgs)
    If Me.UseBasePaint = True Then 
        MyBase.OnPaint(e)
        Return 
    End If

    DrawCustomActivity(e)
End Sub 

Private Sub DrawCustomActivity(ByVal e As ActivityDesignerPaintEventArgs)
    Dim graphics As Graphics = e.Graphics

    Dim compositeDesignerTheme As CompositeDesignerTheme = CType(e.DesignerTheme, CompositeDesignerTheme)

    ActivityDesignerPaint.DrawRoundedRectangle(graphics, compositeDesignerTheme.BorderPen, Me.Bounds, compositeDesignerTheme.BorderWidth)

    Dim text As String = Me.Text
    Dim TextRectangle As Rectangle = Me.TextRectangle
    If Not String.IsNullOrEmpty(text) And Not TextRectangle.IsEmpty Then
        ActivityDesignerPaint.DrawText(graphics, compositeDesignerTheme.Font, text, TextRectangle, StringAlignment.Center, e.AmbientTheme.TextQuality, compositeDesignerTheme.ForegroundBrush)
    End If 

    Dim Image As System.Drawing.Image = Me.Image
    Dim ImageRectangle As Rectangle = Me.ImageRectangle
    If Image IsNot Nothing And Not ImageRectangle.IsEmpty Then
        ActivityDesignerPaint.DrawImage(graphics, Image, ImageRectangle, DesignerContentAlignment.Fill)
    End If

    ActivityDesignerPaint.DrawExpandButton(graphics, _
        New Rectangle(Me.Location.X, Me.Location.Y, 10, 10), _
        Me.Expanded, _
        compositeDesignerTheme)
End Sub

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0

Community Additions

ADD
Show:
© 2015 Microsoft