ActivityDesignerPaint.DrawText(Graphics, Font, String, Rectangle, StringAlignment, TextQuality, Brush) 方法

定义

在活动设计器图面上绘制文本。Draws text on the activity designer surface.

public:
 static void DrawText(System::Drawing::Graphics ^ graphics, System::Drawing::Font ^ font, System::String ^ text, System::Drawing::Rectangle boundingRect, System::Drawing::StringAlignment alignment, System::Workflow::ComponentModel::Design::TextQuality textQuality, System::Drawing::Brush ^ textBrush);
public static void DrawText (System.Drawing.Graphics graphics, System.Drawing.Font font, string text, System.Drawing.Rectangle boundingRect, System.Drawing.StringAlignment alignment, System.Workflow.ComponentModel.Design.TextQuality textQuality, System.Drawing.Brush textBrush);
static member DrawText : System.Drawing.Graphics * System.Drawing.Font * string * System.Drawing.Rectangle * System.Drawing.StringAlignment * System.Workflow.ComponentModel.Design.TextQuality * System.Drawing.Brush -> unit
Public Shared Sub DrawText (graphics As Graphics, font As Font, text As String, boundingRect As Rectangle, alignment As StringAlignment, textQuality As TextQuality, textBrush As Brush)

参数

graphics
Graphics

要在其上绘制文本的 GraphicsThe Graphics on which to draw the text.

font
Font

用于绘制文本的 FontThe Font used to draw the text

text
String

要绘制的文本。The text to draw.

boundingRect
Rectangle

必须在其中绘制文本的边界 RectangleThe bounding Rectangle in which the text must be drawn.

alignment
StringAlignment

指定文本在边框中的对齐位置的 StringAlignmentThe StringAlignment that specifies where the text is aligned in the bounding rectangle.

textQuality
TextQuality

指定绘制文本时所要使用的质量设置的 TextQualityThe TextQuality that specifies the quality setting to draw the text.

textBrush
Brush

用于绘制文本的 BrushThe Brush to draw the text.

例外

graphicsfonttexttextBrush 包含空引用(在 Visual Basic 中为 Nothing)。graphics, font, text, or textBrush contains a null reference (Nothing in Visual Basic).

示例

下面的示例演示一种使用 ActivityDesignerPaint 类在工作流设计图面上绘制自定义活动的方式。The following example demonstrates a way to use the ActivityDesignerPaint class to draw a custom activity on the workflow design surface. 首先使用 DrawRoundedRectangle 方法绘制一个圆角矩形。A rounded rectangle is first drawn using the DrawRoundedRectangle method. 然后使用 DrawText 绘制文本并将其放在 TextRectangleActivityDesigner 位置。Text is then drawn using DrawText and is placed at the location of the TextRectangle of the ActivityDesigner. 此外,再使用 Image 类的 ActivityDesigner 方法绘制与 DrawImage 关联的 ActivityDesignerPaintAdditionally, the Image associated with the ActivityDesigner is drawn using the DrawImage method of the ActivityDesignerPaint class. 最后,使用 CompositeActivity 绘制由 DrawExpandButton 使用的展开按钮。Finally, an expand button used by a CompositeActivity is drawn using the DrawExpandButton.

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)
    {
        base.OnPaint(e);
        return;
    }

    DrawCustomActivity(e);
}

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);
    }

    ActivityDesignerPaint.DrawExpandButton(graphics,
        new Rectangle(this.Location.X, this.Location.Y, 10, 10),
        this.Expanded,
        compositeDesignerTheme);
}
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

适用于