Attribuer une police à son projet

Bonjour,

J'ai cherché partout mais en vain... savez-vous si l'on peux attribuer une police à son projet afin qu'en standard, tout les objets soient dans une police bien définie ?

Merci de votre aide.

5 réponses

  1. Bonjour,

    En Wpf tu crées un style applicable à tout controle.

    En winform, à ma connaissance il faut appliquer pour chaque contrôle, soit à la main en mode design, soit avec une boucle dans le formLoad
    0
    1. Merci de t’intéresser à mon poste.
      J'ai essayé ceci :
          public Form1()
                  {
                      SetFontFinal();
                  }
           
          private void SetFontFinal()
                  {
                      string fontName = "Futura Bk";
                       Font testFont = new Font(fontName, 14.0f, FontStyle.Regular, GraphicsUnit.Pixel);
           
                      if (testFont.Name == fontName)
                      {
                          //Utilise "Futura Bk" dans le cas où elle existe
                          this.Font = testFont;
                      }
                      else
                      {
                          //Utilise Calibri dans le cas ou "Futura Bk" n'existe pas.
                          this.Font = new Font("Calibri", 10.0f, FontStyle.Regular, GraphicsUnit.Pixel);
                      }
          }

      Mais effectivement, il y a du travail derrière.

      Je vais essayer en Wpf (bien que je n'y connait rien :D)
      Ton aide me sera précieuse en tout cas
      0
      1. A savoir que si Winform tolère de bidouiller un C# pas trop bien objet, ça n'est pas le cas pour WPF.

        C'est 100% objet et binding.
        0
    2. Pour chercher si ta police existe j'aurais plutôt fait comme ça
                 InstalledFontCollection installedFontCollection = new InstalledFontCollection();
                  //première option on veut juste savoir si une police existe
                  bool option1 = installedFontCollection.Families.Any(f => f.Name == "Futura Bk");
                 
      
                  //2eme option on aura besoin plus loin de la liste de tous les noms de polices présentes
                  List<string> fontsNames = (from f in installedFontCollection.Families
                                                 select f.Name
                                                 ).ToList();
                  bool option2 = fontsNames.Contains("Futura Bk");

      0
      1. Et pour appliquer une police, un truc comme ça
            public static class StylePolice
            {
                /// <summary>
                /// Applique une police à un Form et tous ses contrôles
                /// </summary>
                /// <param name="LeForm"></param>
                /// <param name="LaFont"></param>
                public static void AppliquePolice(Form LeForm, Font LaFont)
                {
                    LeForm.Font = LaFont;
                    foreach (Control c in LeForm.Controls)
                        AppliquePolice(c, LaFont);
                }
        
                /// <summary>
                /// Applique une police à un contrôle et le cas échéants à tous les contrôles contenus
                /// </summary>
                /// <param name="LeControl"></param>
                /// <param name="LaFont"></param>
                /// <remarks>La méthode est récursive pour aller juste qu'au dernier contrôle</remarks>
                private static void AppliquePolice(Control LeControl, Font LaFont)
                {
                    LeControl.Font = LaFont;
        
                    foreach (Control c in LeControl.Controls)
                        AppliquePolice(c, LaFont);
        
                }
            }


        à appeler ainsi
                   Font maPolice = new Font("Calibri", 10.0f, FontStyle.Regular, GraphicsUnit.Pixel);
        
                    StylePolice.AppliquePolice(this, maPolice);
        

        0
        1. Merci beaucoup Whismeril.

          Je procède aux adaptations et te reviens ^^
          0