using System.Drawing; namespace Developpez.Dotnet.Drawing { /// /// Fournit des méthodes d'extension pour obtenir une police à partir d'une autre. /// Les polices ainsi obtenues sont gérées par un , ce qui évite /// de créer plusieurs fois les mêmes polices. /// public static class FontExtensions { private static FontCache _cache; static FontExtensions() { _cache = new FontCache(); } /// /// Obtient une nouvelle police à partir d'une police existante, avec le style spécifié /// /// Police de base /// Style souhaité /// Une police avec le style spécifié public static Font SetStyle(this Font font, FontStyle style) { return _cache.GetFont(font, style); } /// /// Obtient une nouvelle police à partir d'une police existante, avec le style normal /// /// Police de base /// Une police avec le style normal public static Font SetRegular(this Font font) { return _cache.GetFont(font, FontStyle.Regular); } /// /// Obtient une nouvelle police à partir d'une police existante, avec le style gras /// /// Police de base /// Une police avec le style gras public static Font SetBold(this Font font) { return _cache.GetFont(font, FontStyle.Bold); } /// /// Obtient une nouvelle police à partir d'une police existante, avec le style italique /// /// Police de base /// Une police avec le style italique public static Font SetItalic(this Font font) { return _cache.GetFont(font, FontStyle.Italic); } /// /// Obtient une nouvelle police à partir d'une police existante, avec le style souligné /// /// Police de base /// Une police avec le style souligné public static Font SetUnderline(this Font font) { return _cache.GetFont(font, FontStyle.Underline); } /// /// Obtient une nouvelle police à partir d'une police existante, avec le style barré /// /// Police de base /// Une police avec le style barré public static Font SetStrikeout(this Font font) { return _cache.GetFont(font, FontStyle.Strikeout); } /// /// Obtient une nouvelle police à partir d'une police existante, avec la taille spécifiée /// /// Police de base /// Taille en points de la police souhaitée /// Une police avec la taille spécifiée public static Font SetSize(this Font font, float emSize) { return _cache.GetFont(font.FontFamily, emSize, font.Style, font.Unit, font.GdiCharSet, font.GdiVerticalFont); } /// /// Obtient une nouvelle police à partir d'une police existante, avec la taille et l'unité spécifiées /// /// Police de base /// Taille de la police souhaitée, dans l'unité spécifiée /// Unité de taille à utiliser /// Une police avec la taille et l'unité spécifiées public static Font SetSize(this Font font, float emSize, GraphicsUnit unit) { return _cache.GetFont(font.FontFamily, emSize, font.Style, unit, font.GdiCharSet, font.GdiVerticalFont); } /// /// Obtient une nouvelle police à partir d'une police existante, avec la famille spécifiée /// /// Police de base /// Famille de la police souhaitée /// Une police avec la famille spécifiée public static Font SetFontFamily(this Font font, FontFamily family) { return _cache.GetFont(family, font.Size, font.Style, font.Unit, font.GdiCharSet, font.GdiVerticalFont); } /// /// Obtient une nouvelle police à partir d'une police existante, avec la famille spécifiée /// /// Police de base /// Nom de la famille de la police souhaitée /// Une police avec la famille spécifiée public static Font SetFontFamily(this Font font, string familyName) { return _cache.GetFont(familyName, font.Size, font.Style, font.Unit, font.GdiCharSet, font.GdiVerticalFont); } } }