Guide pratique pour afficher un élément de style visuel
L’espace de noms System.Windows.Forms.VisualStyles expose les VisualStyleElement objets qui représentent les éléments de l'interface utilisateur de Windows pris en charge par les styles visuels. Cette rubrique montre comment utiliser la classe VisualStyleRenderer pour afficher les VisualStyleElement qui représentent les boutons Se déconnecter et Arrêter du menu Démarrer.
Pour afficher un élément de style visuel
Créez une VisualStyleRenderer et affectez-le à l'élément que vous souhaitez dessiner. Notez l’utilisation de la propriété Application.RenderWithVisualStyles et de la méthode VisualStyleRenderer.IsElementDefined ; le constructeur VisualStyleRenderer lève une exception si les styles visuels sont désactivés ou qu’un élément n’est pas défini.
private: VisualStyleRenderer^ renderer; VisualStyleElement^ element; public: CustomControl() { this->Location = Point(50, 50); this->Size = System::Drawing::Size(200, 200); this->BackColor = SystemColors::ActiveBorder; this->element = VisualStyleElement::StartPanel::LogOffButtons::Normal; if (Application::RenderWithVisualStyles && VisualStyleRenderer::IsElementDefined(element)) { renderer = gcnew VisualStyleRenderer(element); } }
private VisualStyleRenderer renderer = null; private readonly VisualStyleElement element = VisualStyleElement.StartPanel.LogOffButtons.Normal; public CustomControl() { this.Location = new Point(50, 50); this.Size = new Size(200, 200); this.BackColor = SystemColors.ActiveBorder; if (Application.RenderWithVisualStyles && VisualStyleRenderer.IsElementDefined(element)) { renderer = new VisualStyleRenderer(element); } }
Private renderer As VisualStyleRenderer = Nothing Private element As VisualStyleElement = _ VisualStyleElement.StartPanel.LogOffButtons.Normal Public Sub New() Me.Location = New Point(50, 50) Me.Size = New Size(200, 200) Me.BackColor = SystemColors.ActiveBorder If Application.RenderWithVisualStyles And _ VisualStyleRenderer.IsElementDefined(element) Then renderer = New VisualStyleRenderer(element) End If End Sub
Appelez la méthode DrawBackground pour afficher l’élément que le VisualStyleRenderer représente actuellement.
protected: virtual void OnPaint(PaintEventArgs^ e) override { // Draw the element if the renderer has been set. if (renderer != nullptr) { renderer->DrawBackground(e->Graphics, this->ClientRectangle); } // Visual styles are disabled or the element is undefined, // so just draw a message. else { this->Text = "Visual styles are disabled."; TextRenderer::DrawText(e->Graphics, this->Text, this->Font, Point(0, 0), this->ForeColor); } }
protected override void OnPaint(PaintEventArgs e) { // Draw the element if the renderer has been set. if (renderer != null) { renderer.DrawBackground(e.Graphics, this.ClientRectangle); } // Visual styles are disabled or the element is undefined, // so just draw a message. else { this.Text = "Visual styles are disabled."; TextRenderer.DrawText(e.Graphics, this.Text, this.Font, new Point(0, 0), this.ForeColor); } }
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) ' Draw the element if the renderer has been set. If (renderer IsNot Nothing) Then renderer.DrawBackground(e.Graphics, Me.ClientRectangle) ' Visual styles are disabled or the element is undefined, ' so just draw a message. Else Me.Text = "Visual styles are disabled." TextRenderer.DrawText(e.Graphics, Me.Text, Me.Font, _ New Point(0, 0), Me.ForeColor) End If End Sub
Compilation du code
Cet exemple nécessite :
Contrôle personnalisé dérivé de la classe Control.
Un Form qui héberge un contrôle personnalisé.
Références aux espaces de noms System, System.Drawing, System.Windows.Formset System.Windows.Forms.VisualStyles.
Voir aussi
- contrôles de rendu avec des styles visuels
.NET Desktop feedback