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:
Ein benutzerdefiniertes Steuerelement, das aus der Control-Klasse abgeleitet ist.
Eine Form, die das benutzerdefinierte Steuerelement hostt.
Verweise auf die Namespaces System, System.Drawing, System.Windows.Forms und System.Windows.Forms.VisualStyles.
Weitere Informationen
.NET Desktop feedback