Guide pratique pour dessiner un contrôle ToolStrip personnalisé
Les contrôles ToolStrip ont les classes de rendu (peinture) suivantes :
ToolStripSystemRenderer fournit l’apparence et le style de votre système d’exploitation.
ToolStripProfessionalRenderer fournit l’apparence et le style de Microsoft Office.
ToolStripRenderer est la classe de base abstraite pour les deux autres classes de rendu.
Pour réaliser un dessin personnalisé (également appelé dessin propriétaire) d'une ToolStrip, vous pouvez surcharger une des classes de rendu et modifier un aspect de la logique de rendu.
Les procédures suivantes décrivent différents aspects du dessin personnalisé.
Basculer entre les renderers fournis
Définissez la propriété RenderMode sur la valeur ToolStripRenderMode souhaitée.
Avec ManagerRenderMode, le RenderMode statique détermine le moteur de rendu pour votre application. Les autres valeurs de ToolStripRenderMode sont Custom, Professionalet System.
Modifier les bordures de style Office
- Remplacez ToolStripProfessionalRenderer.OnRenderToolStripBorder, mais n’appelez pas la classe de base.
Note
Il existe une version de cette méthode pour ToolStripRenderer, ToolStripSystemRendereret ToolStripProfessionalRenderer.
Modifier ProfessionalColorTable
Remplacez ProfessionalColorTable et modifiez les couleurs souhaitées.
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { var colorTable = new MyColorTable(); toolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable); } class MyColorTable: ProfessionalColorTable { public override System.Drawing.Color ButtonPressedGradientBegin => Color.Red; public override System.Drawing.Color ButtonPressedGradientMiddle => Color.Blue; public override System.Drawing.Color ButtonPressedGradientEnd => Color.Green; public override System.Drawing.Color ButtonSelectedGradientBegin => Color.Yellow; public override System.Drawing.Color ButtonSelectedGradientMiddle => Color.Orange; public override System.Drawing.Color ButtonSelectedGradientEnd => Color.Violet; } }
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim colorTable As New MyColorTable ToolStrip1.Renderer = New ToolStripProfessionalRenderer(colorTable) End Sub Class MyColorTable Inherits ProfessionalColorTable Public Overrides ReadOnly Property ButtonPressedGradientBegin() As System.Drawing.Color Get Return Color.Red End Get End Property Public Overrides ReadOnly Property ButtonPressedGradientMiddle() As System.Drawing.Color Get Return Color.Blue End Get End Property Public Overrides ReadOnly Property ButtonPressedGradientEnd() As System.Drawing.Color Get Return Color.Green End Get End Property Public Overrides ReadOnly Property ButtonSelectedGradientBegin() As System.Drawing.Color Get Return Color.Yellow End Get End Property Public Overrides ReadOnly Property ButtonSelectedGradientMiddle() As System.Drawing.Color Get Return Color.Orange End Get End Property Public Overrides ReadOnly Property ButtonSelectedGradientEnd() As System.Drawing.Color Get Return Color.Violet End Get End Property End Class End Class
Modifier le rendu pour tous les ToolStrips
Utilisez la propriété ToolStripManager.RenderMode pour choisir l’un des renderers fournis.
Utilisez ToolStripManager.Renderer pour affecter un renderer personnalisé.
Vérifiez que ToolStrip.RenderMode est défini sur la valeur par défaut de ManagerRenderMode.
Désactiver les couleurs Office
- Définissez ToolStripManager.VisualStylesEnabled sur
false
.
Désactiver les couleurs Office d’un ToolStrip
Utilisez du code similaire à l’exemple de code suivant.
ProfessionalColorTable colorTable = new ProfessionalColorTable(); colorTable.UseSystemColors = true; toolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable);
Dim colorTable As New ProfessionalColorTable colorTable.UseSystemColors = True ToolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable)
Voir aussi
.NET Desktop feedback