// Avec g étant votre Graphics SizeF texteSize = g.MeasureString("Texte à mesurer", LaFontQueVousutilisez);
Très pratique pour faire du positionnement de texte par la suite.
Exemple pour dessiner un carré et une String et centrer le tout en fonction d’un position x.
VbDim g As Graphics = ... ' le graphics sur lequel on dessine Dim x As Int32 = ... ' la position x de l'ensemble Dim y As Int32 = ... ' la position y de l'ensemble Dim texte as String = ... ' le texte à affciher Dim couleur As Color = ... ' la couleur de remmplicage du carré Dim _heightCarre As Int32 = 10 Dim _espaceText As Int32 = 4 ' Mesurer la longuer du text à afficher Dim largeurTexte As Int32 = Convert.ToInt32(g.MeasureString(texte, Me.Font).Width) Dim positionX As Int32 = x - (largeurTexte + _heightCarre + _espaceText) / 2 ' Dessiner le carré coloré Dim rect As new Rectangle(positionX, _legendTop, _height, _height) g.FillRectangle(new SolidBrush(couleur), rect) g.DrawRectangle(Pens.Black, rect) ' Dessin du texte g.DrawString(texte, _ Me.Font, _ Brushes.Black, _ positionX + _heightCarre + _espaceText, _ _legendTop)
C#
Graphics g = ...; // le graphics sur lequel on dessine Int32 x = ...; // la position x de l'ensemble Int32 y = ...; // la position y de l'ensemble Int32 texte = ...; // le texte à affciher Color couleur = ...; // la couleur de remmplicage du carré Int32 _heightCarre = 10; Int32 _espaceText = 4; // Mesurer la longuer du text à afficher Int32 largeurTexte = Convert.ToInt32(g.MeasureString(texte, this.Font).Width); Int32 positionX = x - (largeurTexte + _heightCarre + _espaceText) / 2; // Dessiner le carré coloré Rectangle rect = new Rectangle(positionX, _legendTop, _height, _height); g.FillRectangle(new SolidBrush(couleur), rect); g.DrawRectangle(Pens.Black, rect); // Dessin du texte g.DrawString(texte, this.Font, Brushes.Black, positionX + _heightCarre + _espaceText, _legendTop);