IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[VB.Net] Comment gérer les blancs avec drawString measureString ?


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 111
    Points : 89
    Points
    89
    Par défaut [VB.Net] Comment gérer les blancs avec drawString measureString ?
    Bonjour,

    Je coince sur un probleme de cadrage avec drawstring :

    j'ai un texte dans lequel je ressort certains mots en gras, ex :

    ici le MOT en gras.

    je découpe ma chaine en isolant le mot en gras, j'obtiens :

    s1 ="ici le "
    s2="MOT"
    s3=" en gras."

    j'utilise ensuite
    e.Graphics.DrawString et MeasureString pour calculer le décalage à appliquer sur le Drawstring pour s2 mais je suis pollué par le fonctionnement de measureString qui ajoute du blanc avant et après la chaine :

    Bibliothèque de classes .NET Framework
    Graphics.MeasureString, méthode (String, Font, SizeF, StringFormat, Int32, Int32)

    "La méthode MeasureString est destinée à une utilisation avec des chaînes individuelles et comprend une petite quantité d'espace supplémentaire située avant et après la chaîne pour tenir compte des glyphes surplombants."
    je voudrais obtenir la dimension exacte des chaines et pas "MOT" avec "une petite quantité d'espace supplémentaire".

    J'ai beau creuser partout je ne trouve pas...

    Help

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 111
    Points : 89
    Points
    89
    Par défaut
    Pour ceux qui auront le meme probleme, ma solution :

    Précision : Ceci concerne des polices à espacement fixe comme "courrier"

    Dim r, r2 As SizeF

    With PrintDocument1.PrinterSettings.CreateMeasurementGraphics
    r = .MeasureString("A", printFont, 500, sf) ' recupere la longueur d'un caractere avec les blancs polluants
    r2 = .MeasureString("AA", printFont, 500, sf) ' recupere la longueur de 2 caracteres avec les blancs polluants
    SizeUnChar = r2.Width - r.Width ' taille réelle d'un caractere (longueur de 2 car - longueur d'1 car = longueur d'un seul car)
    End With
    j'ai pas plus simple...

    PS : Je suis toujours preneur de "La solution"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 14/10/2011, 09h57
  2. Comment gère t'on les événements avec cocoa ?
    Par robertopowa dans le forum Apple
    Réponses: 1
    Dernier message: 08/05/2010, 13h03
  3. Comment gère-t-on les plans avec Delphi ?
    Par NCGUI dans le forum Débuter
    Réponses: 4
    Dernier message: 11/08/2009, 14h57
  4. [C++.NET] Comment résoudre un problème d'arrondi avec Single ?
    Par KaeRZed dans le forum Framework .NET
    Réponses: 7
    Dernier message: 18/09/2007, 09h08
  5. Réponses: 2
    Dernier message: 02/05/2006, 09h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo