Comment déterminer la taille d’une chaîne en fonction d’une police

J’ai un petit formulaire qui affiche des informations sur les progrès.
Très rarement, je dois afficher un message plutôt long et je souhaite pouvoir redimensionner ce formulaire si nécessaire afin que ce message tienne dans le formulaire.

Alors, comment puis-je savoir quelle largeur la chaîne S sera rendue dans la police F ?

Cela dépend du moteur de rendu utilisé. Vous pouvez en gros basculer entre GDI et GDI +. La commutation peut être effectuée en définissant la propriété UseCompatibleTextRendering conséquence.

Lorsque vous utilisez GDI +, vous devez utiliser MeasureSsortingng :

 ssortingng s = "A sample ssortingng"; SizeF size = e.Graphics.MeasureSsortingng(s, new Font("Arial", 24)); 

Lorsque vous utilisez GDI (c’est-à-dire le rendu natif Win32), vous devez utiliser la classe TextRenderer :

 SizeF size = TextRenderer.MeasureText(s, new Font("Arial", 24)); 

Voir cet article: Rendu du texte: créer des applications prêtes pour le monde à l’aide de scripts complexes dans les contrôles Windows Forms

Que dis-tu de ça:

 Size ssortingngsize = graphics.MeasureSsortingng("hello", myFont); 

( Voici le lien MSDN.)

De retour dans Win32, j’utilisais l’équivalent pour la fonction VisualStyleRenderer :: GetTextExtent pour cela.