共用方式為


VisualStyleRenderer.DrawBackground 方法

定義

繪製目前可視化樣式專案的背景影像。

多載

DrawBackground(IDeviceContext, Rectangle)

在指定的周框內繪製目前可視化樣式專案的背景影像。

DrawBackground(IDeviceContext, Rectangle, Rectangle)

在指定的周框內繪製目前可視化樣式專案的背景影像,並裁剪到指定的裁剪矩形。

DrawBackground(IDeviceContext, Rectangle)

在指定的周框內繪製目前可視化樣式專案的背景影像。

public:
 void DrawBackground(System::Drawing::IDeviceContext ^ dc, System::Drawing::Rectangle bounds);
public void DrawBackground (System.Drawing.IDeviceContext dc, System.Drawing.Rectangle bounds);
member this.DrawBackground : System.Drawing.IDeviceContext * System.Drawing.Rectangle -> unit
Public Sub DrawBackground (dc As IDeviceContext, bounds As Rectangle)

參數

dc
IDeviceContext

用來繪製背景影像的 IDeviceContext

bounds
Rectangle

繪製背景影像的 Rectangle

例外狀況

範例

下列程式代碼範例示範如何使用 DrawBackground(IDeviceContext, Rectangle) 方法,在自定義控件的 OnPaint 方法內繪製 VisualStyleElement。 此程式代碼範例是提供給 VisualStyleRenderer 類別概觀之較大範例的一部分。

protected:
    virtual void OnPaint(PaintEventArgs^ e) override
    {
        __super::OnPaint(e);

        // Ensure that visual styles are supported.
        if (!Application::RenderWithVisualStyles)
        {
            this->Text = "Visual styles are not enabled.";
            TextRenderer::DrawText(e->Graphics, this->Text,
                this->Font, this->Location, this->ForeColor);
            return;
        }

        // Set the clip region to define the curved corners
        // of the caption.
        SetClipRegion();

        // Draw each part of the window.
        for each(KeyValuePair<String^, VisualStyleElement^>^ entry
            in windowElements)
        {
            if (SetRenderer(entry->Value))
            {
                renderer->DrawBackground(e->Graphics,
                    elementRectangles[entry->Key]);
            }
        }

        // Draw the caption text.
        TextRenderer::DrawText(e->Graphics, this->Text, this->Font,
            elementRectangles["windowCaption"], Color::White,
            TextFormatFlags::VerticalCenter |
            TextFormatFlags::HorizontalCenter);
    }
protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);

    // Ensure that visual styles are supported.
    if (!Application.RenderWithVisualStyles)
    {
        this.Text = "Visual styles are not enabled.";
        TextRenderer.DrawText(e.Graphics, this.Text,
            this.Font, this.Location, this.ForeColor);
        return;
    }

    // Set the clip region to define the curved corners 
    // of the caption.
    SetClipRegion();

    // Draw each part of the window.
    foreach (KeyValuePair<string, VisualStyleElement> entry
        in windowElements)
    {
        if (SetRenderer(entry.Value))
        {
            renderer.DrawBackground(e.Graphics,
                elementRectangles[entry.Key]);
        }
    }

    // Draw the caption text.
    TextRenderer.DrawText(e.Graphics, this.Text, this.Font,
        elementRectangles["windowCaption"], Color.White,
        TextFormatFlags.VerticalCenter |
        TextFormatFlags.HorizontalCenter);
}
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
    MyBase.OnPaint(e)

    ' Ensure that visual styles are supported.
    If Not Application.RenderWithVisualStyles Then
        Me.Text = "Visual styles are not enabled."
        TextRenderer.DrawText(e.Graphics, Me.Text, Me.Font, _
            Me.Location, Me.ForeColor)
        Return
    End If

    ' Set the clip region to define the curved corners of 
    ' the caption.
    SetClipRegion()

    ' Draw each part of the window.
    Dim entry As KeyValuePair(Of String, VisualStyleElement)
    For Each entry In windowElements
        If SetRenderer(entry.Value) Then
            renderer.DrawBackground(e.Graphics, _
                elementRectangles(entry.Key))
        End If
    Next entry

    ' Draw the caption text.
    TextRenderer.DrawText(e.Graphics, Me.Text, Me.Font, _
        elementRectangles("windowCaption"), Color.White, _
        TextFormatFlags.VerticalCenter Or _
        TextFormatFlags.HorizontalCenter)
End Sub

備註

這個方法會繪製由 ClassPartState 屬性所指定的目前可視化樣式專案背景。

如果 bounds 參數所指定之矩形的 WidthHeight 小於 0,則 DrawBackground 方法會傳回而不繪製背景。

可視化樣式專案的背景可以是位圖檔案或填滿框線。 若要判斷背景類型,請使用 EnumProperty.BackgroundType的自變數值呼叫 GetEnumValue 方法。 若要判斷專案背景是否會調整以符合指定的界限,請使用自變數值 EnumProperty.SizingType呼叫 GetEnumValue 方法。

適用於

DrawBackground(IDeviceContext, Rectangle, Rectangle)

在指定的周框內繪製目前可視化樣式專案的背景影像,並裁剪到指定的裁剪矩形。

public:
 void DrawBackground(System::Drawing::IDeviceContext ^ dc, System::Drawing::Rectangle bounds, System::Drawing::Rectangle clipRectangle);
public void DrawBackground (System.Drawing.IDeviceContext dc, System.Drawing.Rectangle bounds, System.Drawing.Rectangle clipRectangle);
member this.DrawBackground : System.Drawing.IDeviceContext * System.Drawing.Rectangle * System.Drawing.Rectangle -> unit
Public Sub DrawBackground (dc As IDeviceContext, bounds As Rectangle, clipRectangle As Rectangle)

參數

dc
IDeviceContext

用來繪製背景影像的 IDeviceContext

bounds
Rectangle

繪製背景影像的 Rectangle

clipRectangle
Rectangle

定義繪圖作業裁剪矩形的 Rectangle

例外狀況

備註

這個方法會繪製由 ClassPartState 屬性所指定的目前可視化樣式專案背景。 背景將會裁剪至 clipRectangle 參數所指定的區域。

如果 boundsclipRectangle 參數所指定的矩形 WidthHeight 小於 0,則 DrawBackground 方法會傳回而不繪製背景。

可視化樣式專案的背景可以是位圖檔案或填滿框線。 若要判斷背景類型,請使用 EnumProperty.BackgroundType的自變數值呼叫 GetEnumValue 方法。 若要判斷專案背景是否會調整以符合指定的界限,請使用自變數值 EnumProperty.SizingType呼叫 GetEnumValue 方法。

適用於