public IFontFamily[] Initialize() { var styles = new[] { FontStyle.Bold, FontStyle.Italic, FontStyle.Regular }; var familyList = new List <GDIFontFamily>(); var families = new Dictionary <string, GDIFontFamily>(); var fontCollection = new InstalledFontCollection(); int familyCount = fontCollection.Families.Length; for (int i = 0; i < familyCount; i++) { var fontFamily = fontCollection.Families[i]; var familyName = fontFamily.GetName(0); if (!families.TryGetValue(familyName, out var family)) { family = new GDIFontFamily(familyName); families[familyName] = family; familyList.Add(family); } foreach (var style in styles) { if (fontFamily.IsStyleAvailable(style)) { int weight = 200; var id = familyName; var name = familyName; if (style == FontStyle.Bold) { weight = 700; id += "-bold"; name += " Bold"; } else if (style == FontStyle.Italic) { id += "-italic"; name += " Italic"; } var fontStyle = new GDIFontStyle(family, id, name, name, style, weight); family.AddStyle(fontStyle); } } } familyList.Sort(); foreach (var family in familyList) { family.RemoveDuplicates(); } return(familyList.OfType <IFontFamily>().ToArray()); }
public override bool Equals(object obj) { if (obj == null) { return(false); } if (ReferenceEquals(this, obj)) { return(true); } if (obj.GetType() != typeof(GDIFontStyle)) { return(false); } GDIFontStyle other = (GDIFontStyle)obj; return(Id == other.Id); }
internal void AddStyle(GDIFontStyle style) { _fontStyles = null; _styleList.Add(style); }