Como usar uma classe de renderização do controle
Este exemplo demonstra como usar a classe para renderizar a ComboBoxRenderer seta suspensa de um controle de caixa de combinação. O exemplo consiste no OnPaint método de um controle personalizado simples. A ComboBoxRenderer.IsSupported propriedade é usada para determinar se os estilos visuais estão habilitados na área do cliente das janelas do aplicativo. Se os estilos visuais estiverem ativos, o método renderizará a seta suspensa com estilos visuais, caso contrário, o ComboBoxRenderer.DrawDropDownButtonControlPaint.DrawComboButton método renderizará a seta suspensa no estilo clássico do Windows.
Exemplo
// 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
Compilando o código
Este exemplo requer:
Um controle personalizado derivado da Control classe.
Um Form que hospeda o controle personalizado.
Referências aos Systemnamespaces , System.Drawing, System.Windows.Formse System.Windows.Forms.VisualStyles .
Confira também
.NET Desktop feedback
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de