Attribuer une police à son projet

Fermé
Jaber_ Messages postés 23 Date d'inscription dimanche 17 juillet 2016 Statut Membre Dernière intervention 23 novembre 2016 - 18 juil. 2016 à 14:16
Jaber_ Messages postés 23 Date d'inscription dimanche 17 juillet 2016 Statut Membre Dernière intervention 23 novembre 2016 - 19 juil. 2016 à 13:29
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

Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
18 juil. 2016 à 14:21
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
Jaber_ Messages postés 23 Date d'inscription dimanche 17 juillet 2016 Statut Membre Dernière intervention 23 novembre 2016
18 juil. 2016 à 14:29
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
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
18 juil. 2016 à 20:47
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
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
18 juil. 2016 à 21:01
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
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
18 juil. 2016 à 21:13
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jaber_ Messages postés 23 Date d'inscription dimanche 17 juillet 2016 Statut Membre Dernière intervention 23 novembre 2016
19 juil. 2016 à 13:29
Merci beaucoup Whismeril.

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