Mesurer la longueur en pixels d'une chaine de caractères

cs_cpetitjean Messages postés 4 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 19 mai 2010 - 17 mai 2010 à 17:42
cs_saramar Messages postés 17 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 17 juin 2010 - 20 mai 2010 à 10:51
Bonjour à tous,

Quelqu'un connaitrait-il un moyen pour calculer la longueur en pixels, d'une chaine de caractères afin de pouvoir la faire afficher dans un label (ou un HyperLink), qui lui a une taille déterminée.
Si la chaine est plus longue que la largeur du label (ou de l'HyperLink), alors je souhaiterais couper la chaine et y ajouter 3 points à la fin.

J'ai bien trouvé la méthode "MeasureText" mais apparemment ce serait pour des WindowsForms et non pour des Webforms.

Merci pour votre aide.

3 réponses

cs_saramar Messages postés 17 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 17 juin 2010
19 mai 2010 à 14:31
Je n'ai pas de réponse en pure code mais si tu spécifie la taille de ton texte en px dans ton css et en prenant le nombre de caractere de ton string tout en le multipliant par la mesure en px du css tu obtiendra ce que tu veux.

Css:
body
{
font-size: 12px;
}

code:
String text = "abcd";
int tailleEnPixel = text.length * 12; //la font-size

Voila
0
cs_cpetitjean Messages postés 4 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 19 mai 2010
19 mai 2010 à 16:09
Merci pour ta réponse, mais cette méthode ne peut fonctionner étant donné que la taille en largeur de chaque caractère varie, sans compter les paramètres supplémentaires : type de la police de caractère, son style (bold, italic, normal...) etc...
J'ai pour le moment simplement utilisé un style : "Text-overflow:ellipsis", malheureusement ça fonctionne sur tous les navigateurs, sauf sous FF :o(

Merci encore de ton aide.
0
cs_saramar Messages postés 17 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 17 juin 2010
20 mai 2010 à 10:51
Voila un indice:

http://stackoverflow.com/questions/451903/how-can-i-convert-a-string-length-to-a-pixel-unit

La partie interessante:

using (System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(new Bitmap(1, 1)))
{
SizeF size = graphics.MeasureString("Hello there", new Font("Segoe UI", 11, FontStyle.Regular, GraphicsUnit.Point));
}
0
Rejoignez-nous