Etirer texte dans toute la largeur d'une picturebox

Résolu
cs_roro69 Messages postés 70 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 29 septembre 2018 - 27 nov. 2015 à 18:15
Zermelo Messages postés 378 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 13 août 2017 - 2 déc. 2015 à 15:35
Bonjour,

Voici ce que je souhaiterais faire:
Dans une picturebox je dessine du texte avec ce code:

Dim g As Graphics
'je crée le graphiquedans le picturebox
g = pbTrace.CreateGraphics

'Crée un rectangle avec les mesure de la picturebox
Dim rect1 As New Rectangle(0, 0, 199, 199)
' Centre le texte dans le rctangle
Dim stringFormat As New StringFormat()
stringFormat.Alignment = StringAlignment.Center
stringFormat.LineAlignment = StringAlignment.Center

' Dessine le texte dans le rectangle.
g.DrawString(text1, font1, Brushes.Black, rect1, stringFormat)

--Je voudrais que le texte soit étirer sur tout la largeur de ma picturebox.
Merci de votre aide et du temps consacré.

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 27/11/2015 à 19:10
Bonjour,
cela devra passer par un calcul arithmétique fait sur ces bases :
1) - calcul de la largeur graphique d'un caractère (un seul) de la chaîne à écrire dans la picturebox, sur la base de sa font, sa taille et son style
2) - détermination de la largeur de la picturebox
3) - calcul, à partir de ces données, du nombre maximal de caractères entrant sur une ligne de la picturebox (= largeur picturebox / largeur graphique d'un caractère)
4) calcul du nombre de caractères "espace" à ajouter pour atteindre le nombre maximum déterminé en 3)
5) ajout, entre chaque caractère de la chaîne à écrire, du nombre nécessaire d'espaces (une simple division)
C'est là le prix à payer pour cet "effet"-là, si l'on y tient vraiment. (c'est plutôt CHER pour cette "bébelle").
A noter : cette réponse n'est totalement valable que si l'on choisit d'utiliser une font à échappement fixe (bien évidemment). Pour une Police d'un autre type, c'est bien plus complexe et cela nécessite alors une boucle/test "jusqu'à ce que..."
Voilà (et valable quel que puisse être le langage de développement utilisé).
Bon courage, car tu vas devoir te retrousser les manches pour de bon.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
1
Zermelo Messages postés 378 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 13 août 2017 14
28 nov. 2015 à 11:59
Bonjour cs_roro69.
Vous pourriez vous en sortir en utilisant les valeurs AutoSize et StretchImage de la propriété SizeMode des PictureBox, ainsi que la
méthode CopyFromScreen de l'objet Graphics. J'ai fait des choses de ce genre dans le code-source
http://codes-sources.commentcamarche.net/source/54845-etirement-d-une-image.
Cordialement.
0
Zermelo Messages postés 378 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 13 août 2017 14
29 nov. 2015 à 11:03
Ucfoutu et moi vous avons proposé deux solutions. Avez-vous choisi, avez-vous trouvé une troisième solution, ou avez-vous lâché prise ?
0
ou tous simplement positionner et dimensionner le graphics par rapport a la picturebox.
Dim rect1 As New Rectangle(me.picturebox.location.x, me.picturebox.location.y, picturebox.width, picturebox.height)
0
cs_roro69 Messages postés 70 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 29 septembre 2018
29 nov. 2015 à 18:39
Bonsoir
Je viens de rentré et de voir vos réponses très instructive.
Je vous remerci pour le temps consacré et l'aide apporté.
Je vais tenter de travailler avec la variable "rectangle"; çà semble une bonne solution; je vous tiendrez au courant pour la suite.
Merci beaucoup

--
0
Zermelo Messages postés 378 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 13 août 2017 14
2 déc. 2015 à 13:37
À quoi est-vous arrivé ?
0
cs_roro69 Messages postés 70 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 29 septembre 2018 > Zermelo Messages postés 378 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 13 août 2017
2 déc. 2015 à 15:25
Bonjour
J'ai réussi grâce à ce code trouvé sur ce site:
http://www.vb-helper.com/howto_net_stretch_text_to_fit.html
Merci
0
Zermelo Messages postés 378 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 13 août 2017 14 > cs_roro69 Messages postés 70 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 29 septembre 2018
2 déc. 2015 à 15:35
Très bien.
Dans ce cas, veuillez déclaré "Résolu" ce sujet.
Cordialement.
0
Rejoignez-nous