Attribuer une police à son projet [Fermé]

Signaler
Messages postés
23
Date d'inscription
dimanche 17 juillet 2016
Statut
Membre
Dernière intervention
23 novembre 2016
-
Messages postés
23
Date d'inscription
dimanche 17 juillet 2016
Statut
Membre
Dernière intervention
23 novembre 2016
-
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

Messages postés
15923
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 mai 2021
701
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
Messages postés
23
Date d'inscription
dimanche 17 juillet 2016
Statut
Membre
Dernière intervention
23 novembre 2016

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
Messages postés
15923
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 mai 2021
701
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.
Messages postés
15923
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 mai 2021
701
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");

Messages postés
15923
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 mai 2021
701
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);

Messages postés
23
Date d'inscription
dimanche 17 juillet 2016
Statut
Membre
Dernière intervention
23 novembre 2016

Merci beaucoup Whismeril.

Je procède aux adaptations et te reviens ^^