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

Windows Forms Discussion :

Taille de police en fonction de la taille d'un label


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Par défaut Taille de police en fonction de la taille d'un label
    Bonjour,
    J'ai besoin de vos lumières.
    Dans un tablelayoutpanel de 3 lignes 2 colones puis un label dans chacune des case avec Dock = Fill.
    Je voudrais savoir comment je peux redimensionner automatiquement la taille des caractères en fonction de la taille du label.
    J'ai vu que l'on pouvais choisir la taille de la police en Px mais je ne comprends pas la relation entre les pixels d'une police et la hauteur/largeur de mon label.

    Merci
    Renaud

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 23
    Par défaut
    Dans ce cas tu peux calculer la taille de la fonte par une approche, ce n'est pas très rapide, mais ça fonctionne :

    Exemple pour un texte d'une ligne centré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    // position de ton texte à afficher
    RectangleF rectLogo = new RectangleF(0, 0, 70, 50);
     
    StringFormat strfmt = new StringFormat();
    strfmt.Alignment = StringAlignment.Center;
    strfmt.LineAlignment = StringAlignment.Center;
     
    font = new Font("Arial", 36, FontStyle.Bold);
    for (int i = 36; i > 11; i--)
    {
        // Approche de la taille fonte à utiliser
        font = new Font("Arial", i, FontStyle.Bold);
        if (g.MeasureString(tonTexte, font).Width < rectLogo.Width)
        {
              break;
         }
    }
     
    sizef = g.MeasureString(tonTexte, font);
    g.DrawString(tonTexte, font, new SolidBrush(foreColor), rectLogo, strfmt);
    Attention à la génération de nouvelles fontes, c'est gourmand en mémoire.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Par défaut
    Merci pour ta réponse
    En effet c'est un peu lourd.
    J'ai donc préféré prendre une police à taille fixe

    A+

    Renaud

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Je pense que WPF est plus approprié pour ce genre d'opération (mais c'est une supposition ).

    Pour ceux qui restent tenter par l'aventure, penser à mettre une gestion de borne (en tout cas inférieur) pour garantir la lisibilité.

    Néanmoins ce genre de technique n'est pas dans "l'esprit" Winform, mieux vaut éviter.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Par défaut
    Malheureusement je ne connais pas WPF.
    Et j'ai pas le courage d'apprendre encore un nouveau langage (même si s'en ai pas vraiment un).
    De plus pour de l'IHM temps réel et pour de l'info. l'industrielle c'est pas vraiment adapté à mon goût.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/04/2015, 12h25
  2. Taille de police en fonction des largeurs et hauteurs écran
    Par francoishelary dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/01/2014, 21h38
  3. Réponses: 0
    Dernier message: 19/04/2012, 17h53
  4. Réponses: 6
    Dernier message: 23/09/2010, 19h40
  5. [DOM] Amélioration d'un fonction pour la taille des polices
    Par boutmos dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 20/08/2008, 11h34

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