Vorgehensweise: Verwenden einer Steuerelementwiedergabeklasse

In diesem Beispiel wird veranschaulicht, wie die ComboBoxRenderer Klasse zum Rendern des Dropdownpfeils eines Kombinationsfeldsteuerelements verwendet wird. Das Beispiel besteht aus der OnPaint Methode eines einfachen benutzerdefinierten Steuerelements. Die ComboBoxRenderer.IsSupported Eigenschaft wird verwendet, um zu bestimmen, ob visuelle Formatvorlagen im Clientbereich von Anwendungsfenstern aktiviert sind. Wenn visuelle Formatvorlagen aktiv sind, rendert die ComboBoxRenderer.DrawDropDownButton-Methode den Dropdownpfeil mit visuellen Formatvorlagen. Andernfalls rendert die ControlPaint.DrawComboButton-Methode den Dropdownpfeil im klassischen Windows-Format.

Beispiel

    // Render the drop-down arrow with or without visual styles.
protected:
    virtual void OnPaint(PaintEventArgs^ e) override
    {
        __super::OnPaint(e);

        if (!ComboBoxRenderer::IsSupported)
        {
            ControlPaint::DrawComboButton(e->Graphics,
                this->ClientRectangle, ButtonState::Normal);
        }
        else
        {
            ComboBoxRenderer::DrawDropDownButton(e->Graphics,
                this->ClientRectangle, ComboBoxState::Normal);
        }
    }
// Render the drop-down arrow with or without visual styles.
protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);

    if (!ComboBoxRenderer.IsSupported)
    {
        ControlPaint.DrawComboButton(e.Graphics,
            this.ClientRectangle, ButtonState.Normal);
    }
    else
    {
        ComboBoxRenderer.DrawDropDownButton(e.Graphics,
            this.ClientRectangle, ComboBoxState.Normal);
    }
}
' Render the drop-down arrow with or without visual styles.
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
    MyBase.OnPaint(e)

    If Not ComboBoxRenderer.IsSupported Then
        ControlPaint.DrawComboButton(e.Graphics, _
            Me.ClientRectangle, ButtonState.Normal)
    Else
        ComboBoxRenderer.DrawDropDownButton(e.Graphics, _
            Me.ClientRectangle, ComboBoxState.Normal)
    End If
End Sub

Kompilieren des Codes

Für dieses Beispiel benötigen Sie Folgendes:

Weitere Informationen