Comment définir plusieurs FontStyles lors de l’instanciation d’une police?

En examinant les constructeurs de la classe System.Drawing.Font, il existe un paramètre à transmettre à l’un des FontStyles définis dans l’énumération System.Drawing.FontStyle.

c’est à dire. Gras Italique Souligné Régulier

et il existe des propriétés booléennes pour Gras, Italique, Souligné, etc. dans l’object instancié, mais elles sont en lecture seule.

Que se passe-t-il si je souhaite définir ma police de manière à avoir plusieurs styles tels que Gras et Souligné?

Comment puis-je faire ceci?

L’énumération FontStyle est une énumération de Flags . Cela signifie que ses membres sont tous des puissances de deux, ce qui vous permet de les combiner en utilisant un OU binary.

Par exemple, si vous voulez en gras et souligné, vous passerez

 FontStyle.Bold | FontStyle.Underline 

La barre verticale ( | ) est l’opérateur OU binary.

Dans le constructeur Font, vous pouvez combiner plusieurs FontStyles à l’aide de l’opérateur OR:

 Font font = new Font(this.Font, FontStyle.Bold | FontStyle.Underline); 

Vous pouvez utiliser quelque chose comme ceci, afin d’éviter plusieurs ifs pour chaque cas:

 //define a font to use. Font font; font = new Font(fontname, fontsize, GraphicsUnit.Pixel); if (bold) font = new Font(font, font.Style ^ FontStyle.Bold); if (italic) font = new Font(font, font.Style ^ FontStyle.Italic); if (underline) font = new Font(font, font.Style ^ FontStyle.Underline); if (ssortingkeout) font = new Font(font, font.Style ^ FontStyle.Ssortingkeout);