2008-11-04 6 views

Répondre

53

Vous avez le même problème dans cette question que ce qui était présent dans la question Java - pas assez d'informations! Il va différer entre WinForms et WPF.

Pour WinForms: Graphics.MeasureString

Pour WPF Je ne sais pas, mais je pense que cela dépendra de la manière exacte que vous dessinez le texte ...

+18

Dans WPF vous utiliseriez FormattedText, http://msdn.microsoft.com/en-us/library/system.windows.media.formattedtext.aspx. –

+0

Comment le feriez-vous dans ASP.NET? – Shimmy

+3

@Shimmy: Eh bien, dans ASP.NET, cela dépend entièrement de ce que fait le navigateur. Ce n'est vraiment pas le genre de chose que vous essayez de faire dans une application web - vous utiliseriez CSS pour contrôler le formatage à la place. –

9

Graphics.MeasureString mais son un peu merdique, comme cela est expliqué et amélioré; here

61

Une alternative pour Windows Forms est la méthode TextRenderer.MeasureText statique.

Bien que limité aux tailles entières, ce format (en association avec TextRenderer.DrawText) rend le texte ClearType plus précis et de meilleure qualité que le duo Graphics.MeasureString/DrawString.

+0

Cool. Jamais entendu parler de TextRenderer avant. – MusiGenesis

+2

Pour référence: [TextRenderer.MeasureText sur MSDN] (http://msdn.microsoft.com/en-us/library/system.windows.forms.textrenderer.measuretext.aspx) –

+0

Voir ce sujet: http: // stackoverflow .com/questions/6704923/textrenderer-measuretext-et-graphics-mesurestring-mismatch-en-taille et cet article de blog: http://blogs.msdn.com/b/jfoscoding/archive/2005/10/13/480632 .aspx pour plus d'informations. Il semblerait que l'utilisation de TextRenderer.MeasureText est la méthode applicable à la plupart des utilisations de .Net WinForms. – RenniePet

21

Dans WPF, vous devez utiliser FormattedText.

+0

le texte en majuscules n'est pas correctement mesuré. – Ragavan

1

Graphics.MeasureString ([texte sur mesure], [police utilisée pour mesurer le texte]);

L'objet résultant fournira les éléments suivants:

properties available

Autres MeasureString de surcharges également disponible.

Questions connexes